Oop 这个图案的名字是什么?

Oop 这个图案的名字是什么?,oop,design-patterns,Oop,Design Patterns,起初我调用了isnapshot服务,它就是这样做的 CountrySnapshot snapshot = snapshotService.CreateSnapshot<Country, CountrySnapshot>(country); CountrySnapshot snapshot=snapshotService.CreateSnapshot(国家); 这个国家必须是这样的 public class Country : ISnapshottable<CountrySn

起初我调用了isnapshot服务,它就是这样做的

CountrySnapshot snapshot = snapshotService.CreateSnapshot<Country, CountrySnapshot>(country);
CountrySnapshot snapshot=snapshotService.CreateSnapshot(国家);
这个国家必须是这样的

public class Country : ISnapshottable<CountrySnapshot>
{
  public CountrySnapshot CreateSnapshot(ISnapshotService snapshotService) { }
}
public class CountrySnapshot : ISnapshotFor<Country> { }
公共类国家/地区:ISnapshottable
{
public CountrySnapshot CreateSnapshot(ISnapshotService snapshotService){}
}
这张照片一定是这样的

public class Country : ISnapshottable<CountrySnapshot>
{
  public CountrySnapshot CreateSnapshot(ISnapshotService snapshotService) { }
}
public class CountrySnapshot : ISnapshotFor<Country> { }
公共类CountrySnapshot:ISnapshotFor{}
我之所以使用“快照”这个名称,是因为我最初打算使用此服务为系统的期末快照创建类的不可变快照,以用于记帐。但是,我突然想到,有时结果不会是一个不变的快照,例如StockLocation可能会创建一个StockAudit(它不是快照)

因此,请记住,这将不再只是创建快照,我需要为这3个接口提供更好的名称

  • ISnapshotService
  • ISnapshottable-Country实现此功能以指示它可以创建CountrySnapshot
  • ISnapshotFor-CountrySnapshot实现此功能以显示它是从一个国家创建的

  • 欢迎任何建议。谢谢

    这是一种工厂模式。看

    似乎很像。快照将是一个纪念品,Snapshottable将是一个将其保存功能外包给快照服务的发起人


    编辑:同意,这不是纪念品,尽管结构相似。它可能是或的一种情况-你知道什么-我认为它更像是一种原型模式,因为它根据现有对象的状态创建新对象

    我已经走了

  • IPrototypeService
  • IPrototype
  • IPrototypedFrom

  • 这不是纪念品。我不打算将新对象的状态恢复到原始对象,并且在某些情况下,创建的对象不会是不变的。如果我没有弄错的话,factory模式会使用默认状态创建新对象,然而,这种模式基于另一个现有对象创建状态为的新对象。工厂可以做任何你想让他们做的事情。这与默认状态无关。一些“愚蠢”的程序员编写了一个包含很多属性但只有一个默认构造函数的类。您使用工厂方法创建工厂,这些工厂方法采用三个或四个典型参数,其他人需要为这些参数调用三个或四个setter。