当前位置 : 主页 > 手机开发 > 其它 >

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

来源:互联网 收集:自由互联 发布时间:2021-06-22
我有三个必须互动的实体:User,SupportTicket和PhoneConversation.当有人打电话请求帮助时,用户应该为他分配一个SupportTicket,并将一个PhoneConversation分配给Ticked描述该呼叫. 我的问题是:在什么实
我有三个必须互动的实体:User,SupportTicket和PhoneConversation.当有人打电话请求帮助时,用户应该为他分配一个SupportTicket,并将一个PhoneConversation分配给Ticked描述该呼叫.

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

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

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