it-swarm.dev

Unterschied zwischen Handler, Manager und Controller

Gibt es einen Unterschied zwischen der Benennung einer Klasse "Handler", "Manager" oder "Controller"? IE: PurchaseManager, PurchaseHandler, PurchaseController.

Vermitteln diese Suffizien die gleiche Bedeutung oder gibt es einen deutlichen Unterschied zwischen ihnen?

Wenn es keine sprachunabhängige Antwort gibt, betrachten Sie Java als Sprache.

24
hpique

Normalerweise ist ein "Controller" die Schnittstelle zwischen einer Benutzeroberflächenkomponente und einem Modell (z. B. Kauf). Controller sollten dünne Klassen sein und kaum mehr tun, als Benutzeroberflächenereignisse Modellfunktionen zuzuordnen.

Ein 'Manager' ist ein Codegeruch. Der Kauf sollte sich selbst verwalten, oder er kann von einer Eigentümerklasse wie dem Verkäufer oder dem Käufer verwaltet werden.

Ein 'Handler' ist normalerweise eine einzelne Funktion, die in ein Objekt eingeschlossen ist. Diese werden benötigt, wenn Sie in Legacy-Sprachen ohne erstklassige Funktionen programmieren.

15
kevin cline

Während meine Antwort nicht auf der Definition basiert, sehe ich etwas, das als "Controller" bezeichnet wird, als exklusiv Implementierung gegenüber einem "Handler" als einschließlich. Ich würde erwarten, nur eine Existenz eines "PurchaseControllers" und mehrere mögliche Versionen eines "PurchaseHandler" zu sehen.

Ich denke, ein anderer gebräuchlicher Name für Controller ist "Broker" - was die Perspektive leicht verändert.

7
David Savage