本文是上一篇文章的续作
http://www.jdon.com/jivejdon/thread/43809
在传统领域模型中,BO被分散到各领域对象中去了,BO的职责似乎是为了完成领域对象所需要的功能,如下图
在普通的电子商务网站,如果用户注册流程Customer是一个Core Domain,那么BO就是为了“注册”服务的,比如初始化积分等。。。真的是这样么?用户注册可不能给网站带来任何收益的!
企业关心的是用户注册信息本身,比如个人爱好,手机号码等,将这些信息传入CRM系统进行数据挖掘,为用户提供感兴趣的商品这才是真正的业务。
Bussiness API : 为业务提供各种服务,如客户关系管理、进销存管理、财务管理等
Service Provider Interface : 服务所依赖的业务模块
Lookup : 通过反射或其他方式将业务模块的任务分发到各BO分别进行处理,处理完毕后再进行汇总,返回给SPI
BO : 单一职责,负责处理业务或业务需要的数据,通过DataMapper直接获取关联的实体
DataMapper : 使用Tag网络维护实体关系,返回BO需要的实体集合
关于以上模式的实现,可以参考本人上一篇文章中提到的KylinORM
参考文献:Jaroslav Tulach 著 Practical API Design
[该贴被gameboyLV于2012-03-10 13:27修改过]