Что является источником шаблона работы?
На этой странице я прочитал следующее:
Единица работы - это шаблон проектирования, описанный Мартином Фаулером.
Обнаружил ли Мартин Фаулер этот шаблон перед разработчиками Hibernate и является ли он единственным источником описания этого шаблона?
5 ответов
Обнаружил ли Мартин Фаулер этот паттерн до появления спящих мальчиков, и является ли Мартин единственным источником описания этого паттерна?
Концепция Unit Of Work является центральной концепцией ORM и была описана Скоттом Эмблером в его выдающемся исследовании ORM (которое датируется 1998 годом), в частности, в знаменитых документах ORM (теперь разделенных на несколько документов):
- Проектирование надежной среды персистентности для реляционных баз данных (более старая версия здесь)
- 5.1.4 Класс PersistentTransaction <- это оно
- Несоответствие объектно-реляционного импеданса
- Сопоставление объектов с реляционными базами данных: подробное сопоставление O/R
- Выбор первичного ключа: естественный или суррогатный?
Насколько мне известно, большинство современных ORM основаны на работах Скотта Амблера и имеют общие концепции:
- TopLink имеет единицу работы,
UnitOfWork
1 - У JDO есть единица работы,
PersistenceManager
, - Hibernate имеет единицу работы,
Session
, - У JPA есть единица работы,
EntityManager
,
Таким образом, хотя эта концепция возникла как шаблон, который был описан Фаулером, работа Амблера явно предшествовала PoEAA.
На самом деле TopLink был создан в начале 90-х годов и, таким образом, предшествовал работе Амблера, я просто не знаю, когда они представили свою единицу работы и как-то на это повлиял Амблер, или это происходит в результате сближения похожих идей.
Шаблоны не "изобретены", они соблюдаются и описываются. Мартину Фаулеру приписывают только наблюдение и описание модели.
Вы не "изобретаете" шаблоны. Вы обнаруживаете их, глядя на вещи, пока не увидите повторяющиеся функции. Вы документируете повторяющиеся функции, которые вы наблюдаете. Очевидно, что некоторые реализации должны быть на первом месте. Тогда кто-то документирует их. Затем другие люди читают и ссылаются на документацию.
все, кто раньше его использовал, теперь называют Мартином?
Я сомневаюсь. "Все" будет много предыдущих пользователей. Некоторые из которых могут (а) не ссылаться на Мартина и (б) найти их в Google очень сложно, поскольку программное обеспечение устарело.
Как говорится в цитате, это была модель дизайна, описанная Мартином Фаулером, там нет ничего, что могло бы утверждать, что он ее изобрел. Он мог бы иметь хотя.
Шаблоны не изобретены; они появляются как проверенные решения общих проблем, и их открывают и описывают, подобно тому, как биологические виды обнаруживаются, а затем описываются и называются. Конечно, где-то вдоль линии, кто-то впервые реализовал решение примитивной единицы работы, но только когда другие сделали то же самое и начали делиться им, это можно было бы описать как шаблон (1 из всего, что никогда не бывает шаблон).
Мартин Фаулер был поразительным в описании и названии появляющихся образцов, среди которых была Единица работы.
Один из его опубликованных источников, описывающих UoW, - это " Шаблоны архитектуры предприятия", опубликованные в 2002 году (несомненно, после того, как сам шаблон существовал долгое время).