2011-10-06 41 views
0

Deall全部,這個實現是否工作?

我正在設計一個使用DDD的車輛登記系統。它需要存檔所有車輛的註冊,以便車輛在其整個使用期間的註冊可以很容易閱讀。

要實現這一要求,我會簡單地把「註冊」 S作爲在車輛的集合,如下圖所示:

//The Aggregation Root 
public class Vehicle 
{   
    GUID id; 

    List<Registration> registrations_; 
    ...... 
    public Vehicle() { ..... } 
    ... 
} 

//The Value Object 
public class Registration 
{ 

    Vehicle vehicle_; 
    decimal amount_; 
    ...... 

    //The calendar interval for a single registration. 
    Period period_; 

    public Registration() { .... } 
} 

任何人可以在此實現是否真正符合上文親切評論上述要求?需要改進嗎?

數據將通過NHibernate或EF使用代碼優先方法在SQL Server 2008中持久化!

謝謝!

Nathan

+0

這將是很好的一些使用場景的更多細節。你能否解釋爲什麼你選擇將'Registration'作爲一個值對象? –

+0

感謝您的評論,湯米!一種使用場景是,用戶在檔案中搜索車輛,並用其許可證號碼進行搜索,然後獲取該車輛在時間線上顯示的註冊歷史記錄,這可以使用Silverlight實施。 **註冊**是一個實體,因爲每個註冊必須被唯一標識並且不可變!對不起,錯誤! – NathanL

+0

糟糕! **註冊**是可變的! – NathanL

回答

0

鑑於這樣一個簡單的要求,這個解決方案看起來很好。如果不瞭解上下文,很難多說。你提到的要求是查看存檔註冊,所以你應該考慮在代碼中使用該語言(registrations應該是archivedRegistrationspreviousRegistrations等)