Шаблоны Ruby on Rails - декоратор и ведущий - PullRequest
108 голосов
/ 22 октября 2011

В последнее время в сообществе Ruby on Rails много говорят о декораторах и докладчиках.

В чем принципиальное различие между ними?Если есть, какие подсказки говорят мне, какой из них использовать над другим?Или, возможно, использовать два вместе?

Ответы [ 2 ]

98 голосов
/ 22 октября 2011

Декоратор - это скорее «давайте добавим немного функциональности к этой сущности».Презентатор - это скорее «построим мост между моделью / бэкендом и представлением».Шаблон презентатора имеет несколько интерпретаций.

Декораторы общего / общего назначения.Докладчики имеют более узкий круг обязанностей / использования.Декораторы используются во всех доменах, докладчики почти всегда связаны с функциональностью, подобной представлению.

32 голосов
/ 26 апреля 2013

Я предлагаю вам проверить это - Экспонат vs Presenter .

Декоратор - это шаблон проектирования, который используется для расширения функциональности определенного объекта путем его обертывания, не затрагивая другие экземпляры.этого объекта.В общем, шаблон декоратора является примером принципа открытия / закрытия (класс закрыт для изменений, но доступен для расширений).

Шаблоны экспоната и презентатора являются своего родашаблона декоратора.

...