web-dev-qa-db-fra.com

Différence entre gestionnaire, gestionnaire et contrôleur

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 de la langue, considérez Java comme langue.

24
hpique

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 fines, 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.

15
kevin cline

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 inclus. 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.

7
David Savage