繁体   English   中英

封装类的责任

[英]Encapsulate responsiblity of class

我需要协助。 Iam实现了用户故事,在该故事中,当创建新客户时,也会为他创建新帐户。 创建帐户并将其分配给客户应该是客户责任(在客户构造函数中创建帐户),还是应该使用某种域服务类作为某种类型的承租人创建处理器,同时还要执行验证逻辑?

编辑:

创建客户后,还会为其创建客户帐户。 客户帐户本身不存在(没有客户)。 但是我还需要在应用程序中使用Accounts elswhere,我是否应该将该帐户视为实体?

我偏偏解决就像

public class Customer:EntityBase<Customer>
{
   public Customer(...)
   {
      ...
      Account = new Account(this);
   }

   public Account Account {get; private set;}
}

public class Account
{
   public Account(Customer customer)
   {
      if(customer.Account!= null) {throw ...}
      AccountOwner = customer;
   }
   public Customer AccountOwner {get;private set;}
}

我们需要更多背景信息才能给您一个很好的答案。 假设客户总是需要一个帐户(这只是一个假设),那么我将在客户构造函数中处理这个问题。 尽管还不知道类的结构,所以这是一个猜测。 它还取决于帐户和客户之间的关系。

这取决于此:销毁客户时是否必须销毁帐户? 如果是这样,则可以在构造函数中创建帐户。 如果帐户的“生存期”比客户长,则必须在客户外部创建该帐户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM