gpt4 book ai didi

design-patterns - 值对象是一种糟糕的模式吗?

转载 作者:行者123 更新时间:2023-12-05 08:14:03 24 4
gpt4 key购买 nike

使用 VO (POCO) 是一种糟糕的设计模式吗?有人说一个对象的所有领域逻辑都需要集中在那个对象中。

例如:产品VO:ID、名称、描述

ProductBO: SearchById(int id), Insert(ProductVO newProduct), Update(ProductVO updatedProduct, SearchByKeyword(string word)……

最佳答案

所有域逻辑都应该在域层中,在域对象中......但是有一个强有力的论据表明技术问题,如如何将对象保存到数据库,或记录对象事件,不是域行为,它们是基础设施或应用程序关注点,不应在域对象中...

检查域驱动设计,在这种方法中,建议您将持久性逻辑的域相关方面(如持久化/获取对象)分离到称为存储库的单独类型(也在域层中)......但是即使在这里,如何与数据库或其他持久性存储技术对话的技术方面也被进一步分离到基础设施服务中。

一种看待这个问题的方法是服务应该分成三组,

  • 基础设施服务。那些涉及一般技术方面的(如通用数据库访问、缓存、日志记录、配置、消息传递等)

  • 应用服务。与业务领域无关的技术或应用程序设计方面(UI 中的 MVC 模式、屏幕导航、领域实体初始化方法等)。

  • 域服务。与业务模型明确相关的服务。 (例如,为特定航类的航空公司座位创建预订,具有特定的膳食请求和座位分配,以及对特定信用卡的适当交易借记......)

    最后一类“服务”应该在领域层,前两类,——不是……

关于design-patterns - 值对象是一种糟糕的模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1213646/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com