作者回复: 嗯,两个问题的思路都不错。尤其是第1题的组合思路。
作者回复: 嗯,是一种办法
作者回复: 如果EffortItem是AggregateRoot的子类,而SubProject又是EffortItem的子类,那么,SubProject也就是AggregateRoot的间接子类了,这是,可以说SubProject是一个AggregateRoot。
作者回复: 是的,用接口继承代替实现继承。
作者回复: 注意一点:聚合是对象实例和实例之间的关系,不是类和类之间的关系。从类的角度有三个类:客户、个人客户、企业客户,但具体到对象,比如某个个人客户,就只有一个对象了。关键要理解这句话“聚合是对象实例和实例之间的关系,不是类和类之间的关系”
作者回复: 1 关键是 abstract 也不能解决 Java 只能单继承的问题 2 没问题
作者回复: 建议把事务控制加在应用层,而不是Repository上面
作者回复: 理论上可以互相调用。 尽量避免循环依赖。解决方式有多种,要看具体情况。抽接口也是一种常见的做法。