web-dev-qa-db-fra.com

Ruby on Rails patterns - décorateur vs présentateur)

Il y a toutes sortes de discussions récentes dans la communauté Ruby on Rails about decorators and presenters).

Quelle est la différence essentielle entre les deux? S'il y en a, quels sont les indices qui me disent lequel utiliser par rapport à l'autre? Ou peut-être d'utiliser les deux conjointement?

108
keruilin

Un décorateur est plutôt "ajoutons des fonctionnalités à cette entité". Un présentateur est plus un "construisons un pont entre le modèle/backend et la vue". Le modèle du présentateur a plusieurs interprétations.

Les décorateurs sont génériques/à usage général. Les présentateurs ont une gamme plus étroite de responsabilités/utilisations. Les décorateurs sont utilisés dans tous les domaines, les présentateurs sont presque toujours liés à des fonctionnalités de type vue.

98
Dave Newton

Je vous suggère de vérifier cela - Exhibit vs Presenter .

Decorator est un modèle de conception utilisé pour étendre les fonctionnalités d'un objet spécifique en l'enveloppant, sans affecter d'autres instances de cet objet. En général, le motif décorateur est un exemple du principe d'ouverture/fermeture (la classe est fermée pour les modifications, mais disponible pour les extensions).

Les modèles d'exposition et de présentateur sont une sorte de modèle de décorateur.

32
dpaluy