起初我在ISnapshotService叫,這是它做什麼這種模式的名稱是什麼?
CountrySnapshot snapshot = snapshotService.CreateSnapshot<Country, CountrySnapshot>(country);
對於這項工作國家必須看起來像這樣
public class Country : ISnapshottable<CountrySnapshot>
{
public CountrySnapshot CreateSnapshot(ISnapshotService snapshotService) { }
}
和CountrySnapshot必須看起來像這樣
public class CountrySnapshot : ISnapshotFor<Country> { }
我使用了名稱「快照」,因爲我最初打算使用此服務爲類的快照結束創建不可變的快照,系統爲會計目的。然而,我發現有時結果不會是不可變的快照,例如StockLocation可能會創建一個StockAudit(這不是快照)。
因此,請記住,這不會再創建快照我需要爲這3個接口提供更好的名稱。
- ISnapshotService
- ISnapshottable - 國家實現這表明它可以創建一個CountrySnapshot
- ISnapshotFor - CountrySnapshot實現這表明它是從一個國家
任何建議歡迎創建。謝謝
如果我沒有記錯的工廠模式將創建默認狀態的新對象,而這個模式創建新對象狀態基於另一個現有對象。 – 2010-12-02 09:27:03
工廠可以做你想讓他們做的任何事情。這與默認狀態無關。 – 2011-09-23 13:09:16