加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

域驱动设计 – DDD:在哪里创建实体对象?

发布时间:2020-12-14 04:55:38 所属栏目:百科 来源:网络整理
导读:我有三个必须互动的实体:User,SupportTicket和PhoneConversation.当有人打电话请求帮助时,用户应该为他分配一个SupportTicket,并将一个PhoneConversation分配给Ticked描述该呼叫. 我的问题是:在什么实体中我应该创建一个新的SupportTicket和PhoneConversat
我有三个必须互动的实体:User,SupportTicket和PhoneConversation.当有人打电话请求帮助时,用户应该为他分配一个SupportTicket,并将一个PhoneConversation分配给Ticked描述该呼叫.

我的问题是:在什么实体中我应该创建一个新的SupportTicket和PhoneConversation的方法CreatePhoneSupportTicket(),将它们相互关联,最后将SupportTicket与用户联系起来?

我猜它不能在用户身上,因为这会违反SRP(用户会做更多的事情).但是该方法本身不止一件事,它应该创建一个SupportTicket和一个PhoneConversation.这是一种情况,当一个服务是一个更好的解决方案然后将方法放在实体上?谢谢你的帮助!

解决方法

使用new运算符如果它符合逻辑的其余部分则没有任何问题.如果只有一种SupportTicket,请使用新的SupportTicket(currentUser)创建一个.或者,如果依赖是另一种方式,则向用户添加CreateSupportTicket()方法并在那里调用新的SupportTicket().反过来,SupportTicket构造函数可以创建一个新的PhoneConversation().如果您稍后决定使用某种工厂,则可以随时重构代码.但在此之前,请选择您能想象到的最简单的解决方案.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读