請大家做一道选择题!Up有分!

DragonCity 2002-09-08 11:52:46
下面的问题,大家看看应该选哪一个答案?(单选题)
Question:You are design a VB application that will dacilitate the billing process for hospitals.The billing calculations performed by the application are based on laws that are likely to change in the future. When these laws change, you will need an easy way to make modifications to your application.You want to ensure that changes to the billing algorithm will not force you to recompile the entire application. You do not want to redistribute the application. How should you design this application?
A. place all of the billing logic in COM components that reside on a central server. When changes are required, replace these components with new version on th server.
B. place all of the billing logic in a separate code module and only recompile this module when the billing logic changes.
C. use conditional compilation statements to control which code segments should be executed
D. build an activeX control that implements business logic. Change the
progid and the clsid ofthe control when the billing logic is modified.
This will allow client applications to automatically detect changes
made to the billing logic, and they will be able to download the lastest
version of the activeX control.

原文给出的答案是D,我认为是A,大家有何见解?并阐述原因。
...全文
116 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
ricky43 2002-09-09
  • 打赏
  • 举报
回复
up
DragonCity 2002-09-09
  • 打赏
  • 举报
回复
上面漏了一句:You want to ensure that changes to the billing algorithm will not force you to recompile the entire application.
翻译为:你么确认付款算法的改变不会迫使你重新编译主程序。

我还是坚持A答案。重复一下我上面的发言:
我选A的理由是:billing process(付款业务逻辑)可以封装在COM components中,并且放在一个单独的服务器上面,这样的好处是,一旦更新了算法,可以在各个客户端同时调用这个新的算法,不至于产生不一致。对于topikachu(皮皮) 所说的不能重新编译客户程序的问题,我认为在不更改部件接口函数的前提下,完全可以在编译新的部件的时候采用二进制兼容选项(工程兼容不行!!),我已经实际测试成功!这样,对于客户程序来说,是无法觉察已经更改了接口的,所以不必重新编译客户端。用regedit查看注册表,发现这样的两个版本的clsid相同。
to: netfor2000(云鹤) : 我为什么不选B?原因是选B可能造成各个客户端因为调用的版本不同而造成计算差异!不同步!所以还是要按A的方式,放在单独的一个服务器上,这样避免了不同步的问题。
to: onestab(┼─)、 sunjiujiu(幸福中) 和 topikachu(皮皮) :我为什么不选D?我的理由是:一般业务逻辑是封装在类部件中的,例如ActiveX Exe或者ActiveX Dll,而不是ActiveX Control。最重要的原因是:各个客户端如果发现progid and the clsid of the control 已经改变了,则我认为窗体根本就不能调用成功!!!程序应该找不到xxx控件而出错!!!因为客户端程序肯定是在编译时已经确定了部件的progid和clsid的。这样还能自动DownLoad吗?我估计连错误处理都未必管用。而且,自动下载新版本,这个技术我还不会呢,我想知道一般是怎么实现的!!这个怪招(对非高手而言)不会是标准答案吧?!

注意这一点:
编译新的部件的时候采用二进制兼容选项(工程兼容不行!!),我已经实际测试成功!客户程序(也就是entire application)的确没有重新编译!而且运行完全正常!这是实际测试的结果!
各位有何高见?
DragonCity 2002-09-09
  • 打赏
  • 举报
回复
我的翻译如下:
你正在设计一个VB应用程序,用来实现(dacilitate,这个词查不到)医院的付款过程。应用程序提供的付款计算过程是根据法律规定执行的,该法律将来很可能会变动。当有关法律变动的时候,你需要用一个简单的方法来改动你的程序。你不想重新发布你的程序。你应该怎么设计这个应用程序呢?
A.把所有的付款逻辑放在一个COM组件中,放在一个中心服务器上。当需要改变时,把服务器上的组件替换成新的版本。
B.把所有的付款逻辑放在一个单独的代码模块(code modual)中,并且当付款逻辑改变的时候重新编译这个模块。
C.使用条件编译状态,控制哪一段代码将要被执行。
D.建立一个ActiveX控件,实现业务逻辑。当付款逻辑改变的时候,改变控件的progid和clsid。着可以允许应用程序自动侦测到付款逻辑的改变,使得应用程序可以下载新的版本的ActiveX控件。

请大家继续讨论!请说明各自的理由!
strongfisher 2002-09-09
  • 打赏
  • 举报
回复
如果选A的话则force you to recompile the entire application,不符合题意了答案应该是D。
zjunengg 2002-09-09
  • 打赏
  • 举报
回复
对于题中具体的含义我也不是太清楚。但是在做应用程序设计时,我们一般都要考虑“行业规则”的更改,就如文中说的laws的改变。所以,比较好的办法时采用一个数据库的表固化这套规则,或者采用ACTIVEX COTROL.这样做的好处,很明显,在规则改变的时候,只要更改程序中对应的规则部分,而不要动代码和编译。
nchen123 2002-09-08
  • 打赏
  • 举报
回复
up
================================================================

CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!

★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。

★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。

Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]

nchen123 2002-09-08
  • 打赏
  • 举报
回复
up
================================================================

CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!

★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。

★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。

Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]

nchen123 2002-09-08
  • 打赏
  • 举报
回复
up
================================================================

CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!

★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。

★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。

Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]

dsclub 2002-09-08
  • 打赏
  • 举报
回复
up
serialize 2002-09-08
  • 打赏
  • 举报
回复
up
w18ily 2002-09-08
  • 打赏
  • 举报
回复
up!
方工 2002-09-08
  • 打赏
  • 举报
回复
D. 将具体算法放在一个ActiveX控件中,修改算法以后,改变它的ProgID和CLSID,这就使得客户程序自动检测出算法的改变,下载最新版本的ActiveX控件。
Laney 2002-09-08
  • 打赏
  • 举报
回复
我觉的选D好一些,这种题没什么意思,本来实现软件的功能就有多种途径
ityaa 2002-09-08
  • 打赏
  • 举报
回复
D应该是正确的,也就是当程序升级或修改时只需修改相应的ACTIVEX就行。(英语太差,只能理解这么多)
wskshun 2002-09-08
  • 打赏
  • 举报
回复
全是英文???帮你UP一下算了
netfor2000 2002-09-08
  • 打赏
  • 举报
回复
等一个UP者。收点分。 呵呵。 选取B吧。
tyjk 2002-09-08
  • 打赏
  • 举报
回复
晕,看来我的英语要好好学学了,up,不要分!!!!!!!!!1
YHeng 2002-09-08
  • 打赏
  • 举报
回复
学习英语先,十年后回答,UP!!!!!!
chanet 2002-09-08
  • 打赏
  • 举报
回复
没错啦!

我只要一分。
用户 昵称 2002-09-08
  • 打赏
  • 举报
回复
A
加载更多回复(14)

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧