【问题标题】:Do ORM packages implement the Facade or Adapter pattern?ORM 包是否实现了 Facade 或 Adapter 模式?
【发布时间】:2011-06-22 06:55:42
【问题描述】:
据我了解,适配器模式基本上是在另一个类上创建一个包装器,以便您包装的类可以被现有代码使用。外观用于更改整个子系统(因此,如果您正在处理需要 5 个步骤的复杂绘图 api,您可以将它们合并为一个方法,例如)。那么我的问题是 ORM 使用哪种模式,还是两者兼而有之?
它们为许多不同的子系统提供单一接口,但我仍然不确定,尽管我倾向于外观模式。
【问题讨论】:
标签:
design-patterns
orm
adapter
facade
【解决方案1】:
对于我所知道的 ORM 框架,Adapter 似乎并不是一个关键的模式。可以使用门面,例如在 Hibernate/JPA 中,有一个 Session/EntityManager 接口负责几乎所有事情,可能在幕后调用了许多不同的子系统接口。
但是,还有很多其他模式在起作用。 Factory patterns 经常被使用几乎不用说 :-) 另一个突出的(至少在 Hibernate 中)是 Proxy,它是延迟获取的基础。此外:Object Pool(用于数据库连接)、Interpreter(用于查询)...列表可以继续。