ruby-on-rails design-patterns decorator presenter

Patrones Ruby on Rails-decorador vs presentador



ruby-on-rails design-patterns (2)

Le sugiero que verifique esto - Exhibit vs Presenter .

Decorator es un patrón de diseño que se usa para extender la funcionalidad de un objeto específico envolviéndolo, sin afectar otras instancias de ese objeto. En general, el patrón de decorador es un ejemplo del principio de abrir / cerrar (la clase está cerrada por modificaciones, pero está disponible para extensiones).

Tanto los patrones de exhibición como los de presentador son una especie de patrón de decorador.

Últimamente se habla mucho en la comunidad de Ruby on Rails sobre decorators y presentadores.

¿Cuál es la diferencia esencial entre los dos? Si hay, ¿cuáles son las pistas que me dicen cuál usar sobre el otro? ¿O tal vez para usar los dos en conjunción?


Un decorador es más un "vamos a agregar alguna funcionalidad a esta entidad". Un presentador es más un "construyamos un puente entre el modelo / backend y la vista". El patrón del presentador tiene varias interpretaciones.

Los decoradores son genéricos / de propósito general. Los presentadores tienen una gama más limitada de responsabilidades / usos. Los decoradores se utilizan en todos los dominios, los presentadores casi siempre están relacionados con la funcionalidad de visualización.