我有三个必须互动的实体:User,SupportTicket和PhoneConversation.当有人打电话请求帮助时,用户应该为他分配一个SupportTicket,并将一个PhoneConversation分配给Ticked描述该呼叫. 我的问题是:在什么实
我的问题是:在什么实体中我应该创建一个新的SupportTicket和PhoneConversation的方法CreatePhoneSupportTicket(),将它们相互关联,最后将SupportTicket与用户联系起来?
我猜它不能在用户身上,因为这会违反SRP(用户会做更多的事情).但是该方法本身不止一件事,它应该创建一个SupportTicket和一个PhoneConversation.这是一种情况,当一个服务是一个更好的解决方案然后将方法放在实体上?谢谢你的帮助!
使用new运算符如果它符合逻辑的其余部分则没有任何问题.如果只有一种SupportTicket,请使用新的SupportTicket(currentUser)创建一个.或者,如果依赖是另一种方式,则向用户添加CreateSupportTicket()方法并在那里调用新的SupportTicket().反过来,SupportTicket构造函数可以创建一个新的PhoneConversation().如果您稍后决定使用某种工厂,则可以随时重构代码.但在此之前,请选择您能想象到的最简单的解决方案.