Модели Ruby on Rails - декоратор против ведущего

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

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

Ответ 1

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

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

Ответ 2

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

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

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