Gibt es einen Unterschied zwischen der Benennung einer Klasse "Handler", "Manager" oder "Controller"? IE: PurchaseManager
, PurchaseHandler
, PurchaseController
.
Vermitteln diese Genügen die gleiche Bedeutung oder gibt es einen deutlichen Unterschied zwischen ihnen?
Wenn es keine sprachunabhängige Antwort gibt, betrachten Sie Java als Sprache.
Antworten:
Normalerweise ist ein Controller die Schnittstelle zwischen einer Benutzerschnittstellenkomponente und einem Modell (z. B. Kauf). Bei Controllern sollte es sich um schlanke Klassen handeln, die nur das Zuordnen von Benutzeroberflächenereignissen zu Modellfunktionen ausführen.
Ein "Manager" ist ein Code-Geruch. Der Kauf sollte sich selbst verwalten, oder er könnte von einer besitzenden Klasse wie dem Verkäufer oder dem Käufer verwaltet werden.
Ein 'Handler' ist normalerweise eine einzelne Funktion, die in ein Objekt eingebunden ist. Diese werden benötigt, wenn in Legacy-Sprachen ohne erstklassige Funktionen programmiert wird.
quelle
Während meine Antwort nicht auf Definition basiert, betrachte ich etwas, das als "Controller" bezeichnet wird, als exklusive Implementierung im Vergleich zu einem "Handler" als inklusive . Ich würde nur eine Existenz eines "PurchaseControllers" und mehrere mögliche Versionen eines "PurchaseHandlers" erwarten.
Ich denke, ein anderer gebräuchlicher Name für Controller ist "Broker" - was die Perspektive leicht verändert.
quelle