Пакеты ORM реализуют шаблон Фасад или Адаптер? - PullRequest
0 голосов
/ 06 февраля 2011

Насколько я понимаю, шаблон Adapter в основном создает оболочку для другого класса, чтобы класс, который вы переносите, мог использоваться существующим кодом.Фасад предназначен для изменения всей подсистемы (поэтому, если вы имеете дело со сложным API рисования, требующим 5 шагов, вы можете объединить их в один метод, например).Тогда у меня вопрос: какой шаблон использует ORM или оба?

Они обеспечивают единый интерфейс для множества различных подсистем, но я все еще не уверен, хотя склоняюсь к шаблону фасада.*

1 Ответ

1 голос
/ 06 февраля 2011

Для каркасов ORM, которые я знаю, Adapter, похоже, не является решающим шаблоном. Фасад может быть использован, например, в Hibernate / JPA, где есть единственный интерфейс Session / EntityManager, отвечающий почти за все, возможно, вызывая множество различных интерфейсов подсистем за кулисами.

Однако в игре много других паттернов. То, что часто используются Factory шаблоны , почти не нужно говорить :-) Другой выдающийся (по крайней мере, в Hibernate) - Proxy , который является фундаментальным для ленивых. выборка. Кроме того: Пул объектов (для соединений с БД), Интерпретатор (для запросов) ... список можно продолжить.

...