引用两段文字来说明问题: “OO编程的技术是一门代理的艺术。职责划分明确,把接口定义好,把实现交给另外的类来做。首先把变化的部分和不变的部分 划分出来。不变的部分,就成了框架。变化的部分,就是程序员自己做。 ”
领域对象是可以有行为能力的,在Rod Johnson的《without EJB》第10章《持久化》中有一段文字:“领域对象包含的逻辑,这里称之为“domain logic”,这些domain logic应该最小化的依赖于DAO,而我们讨论的那些需要持久化操作参与的事务性逻辑,这里称之为“workflow methods”,这些“workflow methods”应该放在“business facade”,而不应该放在domain object里面。可重用度很高的操作可能是domain logic,应该放在domain object里面;比较难重用的控制逻辑方法,特别是可跨越多个domain object的操作则放在business facade object里面。”
虽然领域对象是可以有行为能力的,但除领域对象之外一定是要业务对象的。业务对象应该操控多个领域对象的协作。并不是将所有的逻辑都塞到领域对象中。
|
|