2012-02-27 39 views
1

我需要一些幫助。 Iam實施用戶故事,在創建新客戶時,還爲他創建新帳戶。如果創建賬戶並將其分配給財產是客戶責任(在客戶構造函數中創建賬戶),還是應該使用某些域服務類作爲某種形式的驗證邏輯的承租人創建處理器?封裝類的責任

編輯:

當創建了客戶,也爲他創建的客戶帳戶。客戶賬戶不存在(沒有客戶)。但是我還需要在應用程序的其他地方使用帳戶,我應該將該帳戶視爲實體嗎?

我partialy解決像

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;} 
} 
+0

聚集體(以及它們內部的實體)與不變量/行爲有關。到目前爲止,你已經描述了一點。您似乎將這些概念,客戶和客戶賬戶視爲結構性事物。正如丹尼爾所說,你沒有給我們太多的東西繼續下去。我建議你看一下CRC卡(http://en.wikipedia.org/wiki/Class-responsibility-collaboration_card)來模擬更多的行爲。 – 2012-02-27 17:08:24

回答

0

這取決於這一點:沒有當客戶被破壞的帳戶已被破壞?如果是,那麼你可以在構造函數中創建帳戶。如果賬戶「壽命」長於客戶,則必須在客戶之外創建賬戶。

1

我們需要更多的上下文才能給你一個很好的答案。假設客戶永遠需要一個賬戶(這只是一個假設),那麼我會在客戶構造函數中處理這個問題。對於你的課程是如何構建的,你還沒有弄清楚,所以這是一個猜測。這也取決於賬戶和客戶之間的關係。