我不太清楚应该如何设计一个类:
- 贫血模型域状态:
这种反模式的根本可怕之处在于它与面向对象设计的基本思想背道而驰。也就是将数据组合起来并一起处理。贫血域模型只是一种程序化风格设计,正是像我这样的对象偏执狂……从我们在 Smalltalk 的早期开始就一直在争取的东西。更糟糕的是,许多人认为贫血的对象是真实的对象,因此完全忽略了面向对象设计的意义所在。在贫乏的领域设计中,业务逻辑通常在单独的类中实现,这些类会转换领域对象的状态。Fowler 调用此类外部类事务脚本。这种模式是 Java 应用程序中的一种常见方法,可能受到早期版本的 EJB 实体 Bean 等技术的鼓励,以及在遵循三层服务应用程序架构的 .NET 应用程序中,其中此类对象属于“业务实体”类别
数据传输对象与业务对象或数据访问对象之间的区别在于,DTO 除了存储和检索自己的数据(访问器和修改器)之外没有任何行为。DTO 是简单的对象,不应包含任何需要测试的业务逻辑。
- 活动记录模式
参考维基百科
- 现在还要参考这个问答:如何调用也访问数据库的 DTO 类?
似乎DTO 应该只用于在 web 服务之间共享数据,但同时,意识到它们在 DB 上的持久性的 Active Record 也很糟糕。
那么应该在包含从数据库中获取的数据的类中放入哪种逻辑?