我一直在阅读 Fowler 在他的网站上描述的这个贫血的领域模型问题。
他说,按照我的理解,域模型类应该包含与其相关的业务逻辑,因为这更像是 OOP 并且具有其他一些优势。
现在我的问题:假设我使用hibernate,在这种情况下,我使用JPA 或Hibernate 注释来注释我的实体类。
按照 Fowler 的说法,这些实体类应该包含业务逻辑吗?
我之所以这样问,是因为根据 Robert Martin 的说法(他在 YouTube 上的几次谈话中说),你永远不应该把你的业务逻辑放在包含某种类型的第三方代码的类中。相反,应该将业务逻辑和业务规则与特定于技术的细节分开并加以保护。
我说他们有点矛盾是对的吗?或者我只是没有得到它?
再说一遍:根据 Fowler 的说法,我应该将业务逻辑放入实体类(如 User、Product 等)中,以防我使用 presistence 框架,包含所有那些特定于技术的注释?
我一直认为你应该尽量与第三方代码解耦,以保护自己的代码免受意外更改。