Différence entre le gestionnaire, le gestionnaire et le contrôleur

21

Y a-t-il une différence entre nommer une classe "Handler", "Manager" ou "Controller"? IE: PurchaseManager, PurchaseHandler, PurchaseController.

Ces suffrages véhiculent-ils le même sens ou existe-t-il une nette différence entre eux?

S'il n'y a pas de réponse indépendante du langage, considérez Java comme langage.

hpique
la source
1
Plus de contexte serait utile ici. De nombreux (beaucoup!) Cadres ont des définitions assez claires des distinctions. Cependant, il n'y a pas de définition universelle derrière ces mots. Dans quel contexte travaillez-vous? Quel cadre utilisez-vous? Quelle langue utilisez-vous?
S.Lott
Langage clarifié.
hpique

Réponses:

15

Habituellement, un «contrôleur» est l'interface entre un composant d'interface utilisateur et un modèle (par exemple, achat). Les contrôleurs doivent être des classes minces, ne faisant guère plus que de mapper les événements de l'interface utilisateur aux fonctions de modèle.

Un «Manager» est une odeur de code. L'achat doit se gérer lui-même, ou il peut être géré par une classe propriétaire, comme le vendeur ou l'acheteur.

Un «gestionnaire» est généralement une fonction unique enveloppée dans un objet. Ceux-ci sont nécessaires lors de la programmation dans des langages hérités sans fonctions de première classe.

Kevin Cline
la source
Bien que je n'aime pas non plus le concept de `` gestionnaire '', je pense que la raison pour laquelle il ne gère pas sa propre logique métier est que le programmeur veut séparer un bean / pojo / dto des opérations commerciales complexes.
Sridhar Sarnobat
1
Bien que je sois d'accord avec vous sur Manager d'un point de vue agnostique linguistique, je voudrais ajouter qu'un Manager peut être un terme correct à utiliser dans certains cas. Par exemple, il est correct de parler de gestionnaires d'un point de vue de protocole par exemple. Pour SNMP, vous avez un gestionnaire «gérant» un ensemble d'agents. C'est le terme correct à utiliser dans ce cas. Cela justifie cependant des utilisations spontanées de "Manager".
patrik
7

Bien que ma réponse ne soit pas basée sur la définition, je considère quelque chose étiqueté comme un "contrôleur" comme une implémentation exclusive par rapport à un "gestionnaire" comme inclusif . Je m'attendrais à voir une seule existence d'un "PurchaseController" et plusieurs versions possibles d'un "PurchaseHandler".

Je pense qu'un autre nom commun pour Controller est "Broker" - ce qui modifie légèrement la perspective à ce sujet.

David Savage
la source
Merci pour ces définitions. Vous avez mis beaucoup de connaissances en quelques lignes.
recherche le