原始论文的地址:
artima - The DCI Architecture: A New Vision of Object-Oriented Programming
参考文章:
DDD里聚合根同时实现类的属性和方法,容易出现上帝类;基本想法是把biz和实体类相分离。
传统的ddd架构,领域层是纯oop模型,应用层使用领域层的聚合根来完成业务,DCI是把
对聚合根的直接耦合,变成了对角色的使用。聚合根本身被拆分为多个角色,每个有自己的属性和方法。
context依赖角色,聚合根组合角色。
// 纯DDD,聚合根是铁板一块,容易形成上帝类
school.entrance(Person p)
school.run()
// DCI,app层与domain层之间有了一个role的桥廊,app(context)不会耦合特别多的属性,只耦合少部分的行为
class StudentRole{
// 学生的属性和方法
}
// person可以组合多种角色
person.setStudentRole(new StudentRole());
person.setWorkerRole(new WorkerRole());
person.setP

DCI架构提出将业务逻辑与对象分离,通过角色来组织,降低了领域层与应用层的耦合。传统的DDD中,聚合根可能变成上帝类,而DCI则将聚合根拆分为多个角色,每个角色包含特定的属性和方法。Context依赖于角色,而不是直接耦合于聚合根,如在学校的场景中,Person对象可以扮演学生、工人和球员等不同角色,Context仅依赖于这些角色,从而减少了耦合。

3258

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



