起初我在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