banq
2006-10-13 09:45
>但前题是这些规则一定是它本身的职责才是,否则模型就会遭到破坏(面向对象的精要处)。

所以,例如各种条件的查询,这些条件的筛选功能也应该属于规则,过去我们将数据筛选留给数据库SQL语句完成,现在DDD认为筛选应该在内存中完成,SQL文本也是一种规则。

>除领域对象之外一定是要业务对象的

引用Rod 的话容易引起误解,前面我们讨论过,我们的模型分领域对象和服务,领域对象又分实体和值对象。那么Rod这个业务对象又是什么呢?如果是服务,我们一般不会将服务称为对象,服务是一种组件模型,要么是服务,要么是操作operations

banq
2006-10-13 09:52
>Service层和Function层的关系应该是胃和小肠的关系一样

这是很形象比喻,现在确实没有这方面框架,Service层和Function层分离,从现在来看,好像更多还是分析领域的事情,必须由建模人员来指定哪些服务是应用还是领域。

yellowcat
2009-04-10 12:22
ddd中有这样的一段话:

要区分应用层服务和领域层服务是非常困难的,

细粒度的领域对象会导致信息从领域层转到应用层,需要应用层来处理复杂的领域对象交互作用,从而是领域信息从领域层上消失,而出现在应用代码和用户接口代码中,明智的引入领域服务可以有效的帮助我们分清领域层和应用层的界限。

书中也举了一个例子:

例如转账服务

应用层 资金转账应用服务

1.读取输入(例如xml请求)

2.发送消息给领域服务,要求处理

3.监听确认消息

4.决定用基础结构层的服务发送通告

领域层 资金转账领域服务

1.必要的帐户和分类账对象的相互作用,完成正确的提取和存入

2.去人转账结果(转账是否被允许或拒绝等)

猜你喜欢