而且最主要的特点就是:每个业务类包含了很多的业务验证,状态跟踪等。职责很单一,便于维护和理解。
示例代码如下:
代码
public class Order public Guid Id public float ShippingCost() public float Total() public void Process() public bool CanProcess() GetBrokenRules.Count() == 0); public List<BrokenBusinessRule> GetBrokenRules() |
上面的代码只是Order业务类的一部分代码,但是从代码中可以看出,这个类中包含了很丰富的业务逻辑。例如,在Process方法中,处理了下面的流程:
1.调用CanProcess 方法来进行下面的验证:
a.Order的是否处于合适的可以被处理的状态
b.在Order中订购的物品是否有足够的库存
2.customer用户给这个order付款。至于怎么付款,这个逻辑就包含在了card类中。
3.然后,对产品的库存进行更新。
可以看出,采用Domain Model方式很适合来来组织复杂的业务逻辑,而且代码也很容易阅读和理解(如果在加上重构)。
3.总结
通过上面的一些分析和解释,不知道大家是否现在已经清楚:之前提出的问题如何解决。
一个建议就是:不要太形式化,根据项目的实际情况来。这句话可以使相当于废话,但是很多的情况确实是这样的,DDD不是万能的,Transaction Script和Active Record也有它们的优势,合适就好。
ASP编码教程:如何实现/使用缓存
[ASP]2015年4月15日ASP编码教程:asp缓存的分类
[ASP]2015年4月15日ASP编码教程:何谓ASP缓存/为什么要缓存
[ASP]2015年4月15日ASP编码教程:asp实现的sha1加密解密代码
[ASP]2015年4月15日ASP编码教程:asp执行带参数的sql语句实例
[ASP]2015年4月14日