这意味着实体可以被注入到任何地方,但我们有德米特法则,对象应该只与它们的近邻进行通信。当然,我们可以说,我们根本不在服务中使用它们,而是仅在 DAO 服务中使用它们,但目前我们还没有大赢家。
我的意思是,我喜欢将所有对象结构集中在一处的想象力。如果有人问,它是在哪里创建的,我们可以说:“Spring 创建了它”。
另一个原因是表可能有非空列。如果 JPA 实体是 100% 数据库兼容的实体 bean,则它至少需要一个自动原型创建不支持的构造函数参数。我们可以删除该构造函数参数,并将任何对该非空列的违规从编译时移至运行时,但如果我们删除该构造函数参数,我们也会删除快速失败原则。
依赖倒置原则也是有原因的。我的理由(恭敬地)与 Makoto 的理由略有不同。DIP 背后的想法之一是
高层模块不应该依赖于低层模块。
您是否同意这样的想法:以这种方式创建的实体是低级模块,而需要它的服务是高级模块?所以我们放弃了DIP的这一部分。
| 归档时间: |
|
| 查看次数: |
1464 次 |
| 最近记录: |