Design patterns 贫血模型vs DTO vs活动记录
我不太清楚如何设计一个类:Design patterns 贫血模型vs DTO vs活动记录,design-patterns,architecture,dto,separation-of-concerns,anemic-domain-model,Design Patterns,Architecture,Dto,Separation Of Concerns,Anemic Domain Model,我不太清楚如何设计一个类: 国家: 这种反模式的根本恐怖之处在于它是如此的相反 面向对象设计的基本思想;哪一个是合并 数据并一起处理。贫血领域模型只是一个简单的模型 程序化风格的设计,正是那种对象偏执的东西 像我一样。。。从我们在Smalltalk的早期开始就一直在战斗。 更糟糕的是,许多人认为贫血的物体是真实的物体, 因此完全忽略了面向对象设计的意义 到处都是。在贫乏的领域设计中,业务逻辑通常是 在单独的类中实现,这些类转换 域对象。Fowler调用这样的外部类事务 脚本。此模式是Java
- 国家:
- 图案
- 现在也请参考本问答:
那么,在包含从数据库获取的数据的类中应该放哪种逻辑呢?您应该有自己的域实体。您可以在持久性层中使用活动记录。将其视为一个数据库表,没有任何功能,只能从数据库中保存和检索对象。然后,您可以使用AR中的数据创建域实体的工厂。现在您可以自由地使用多态性、设计模式,并将oop原则应用于域实体 我们的想法不是将逻辑放入AR类中。使用它们只是因为您不想编写直接SQL查询 用户AR映射到用户表,但工厂可以根据该数据构建订户或用户。我在这篇博文中写了一点:
让我们来了解一些概念:
- 域模型:包含业务规则的模型。它由表示业务及其流程使用的概念的对象组成
- DTO:顾名思义,数据传输对象是将数据从域模型传递到域模型的一种方式。DTO在应用程序的不同层上有多种用途:
- 资源:是从RESTful API返回的DTO
- DAO:DTO是发送到持久层并从持久层返回的
- 视图模型:DTO发送到表示层上的视图并从中返回