原始论文的地址:
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{
// 学生的属性和方法
}