我被问到问题"实体框架中使用了什么样的四种设计模式"。我真的没想到。
任何人都可以帮助识别EF中的一些GOF设计模式吗?
答案 0 :(得分:7)
看http://en.wikipedia.org/wiki/Design_Patterns_(book)和那里列出的GoF模式,我想出了这个清单:
ObjectContext
提供CreateObjectSet<T>
方法,为给定类型创建ObjectSet<T>
。由于这些对象集是访问上下文中实体的主要方法,我想说它也是EF中使用的非常重要的模式。ObjectContext.SaveChanges
方法的各种重载,您可以选择用于确定对已知实体所做更改的不同策略。ObjectStateManager
会跟踪对实体所做的更改,并可用于访问这些信息,包括原始值。ObjectContext
提供了两个ObjectMaterialized
和SavingChanges
。由于.NET事件是观察者模式的实现,因此EF也有资格获得此事件。我可能对这里的命名模式非常慷慨,但通过一些挖掘,你可以找到许多EF实际实现这些模式的地方。但是,由于这本书出版近20年,你可以预期其中一些模式被认为是标准,这是不值得一提的。例如 Observer 模式或 Iterator 模式(我没有提到过,因为IQueryable实现了IEnumerable)。