业务对象问题及分布式架构实现
1. 多接口与 IDispatch 在 ASP 中的应用局限
在编程中,多接口和使用 IDispatch 虽不能替代实现继承,但能为客户端提供类似功能。然而,对于 ASP 客户端而言,这些技术的作用往往有限。因为 ASP 客户端只能通过对象的默认 IDispatch 接口与对象通信,几乎无法与对象的任何次要接口进行交互。
从技术层面讲,构建能让 ASP 与其次要 IDispatch 接口协同工作的对象是可行的,但这是一个相当晦涩的过程。由于其复杂性以及 Visual Basic 不支持等原因,这种做法并未广泛应用。
2. 业务规则的强制实施
我们常常会思考,为何要实现不同的对象关系?我们本可以独立实现各种对象,然后用 ASP 中的脚本代码将它们粘合在一起,毕竟 ASP 常被描述为连接对象的粘合剂。但实际上,这种对 ASP 的描述并不准确,也并非对象的最优使用方式。
ASP 更适合被视为 UI 代码的存放地。从传统 Windows 开发者的角度看,ASP 可替代 VB 表单或 C++ 对话框。UI 代码与对象交互的目的是生成高质量的用户界面,而非充当粘合剂。
另一个重要概念是,对象应强制执行所有业务规则。在单个对象内实现这一点相对容易,比如编写代码验证传入的数据值、进行计算等。但在大多数业务环境中,情况并非如此简单,有些业务规则或行为会跨越多个对象。
以销售订单为例,销售订单头(SalesOrderHeader)和订单项(LineItem)对象之间的关系就存在规则跨越对象的情况。订单头对象有一个返回销售订单总金额的方法,而这个总金额是通过向所有订单项对象询问各自的小计来
超级会员免费看
订阅专栏 解锁全文
172万+

被折叠的 条评论
为什么被折叠?



