Differenza tra gestore, responsabile e controller


21

C'è qualche differenza tra la denominazione di una classe "Gestore", "Manager" o "Controller"? IE: PurchaseManager, PurchaseHandler, PurchaseController.

Questi suffissi trasmettono lo stesso significato o c'è una chiara differenza tra loro?

Se non esiste una risposta indipendente dalla lingua, considerare Java come lingua.


1
Più contesto sarebbe utile qui. Molti (molti!) Framework hanno definizioni abbastanza chiare delle distinzioni. Tuttavia, non esiste una definizione universale dietro queste parole. In quale contesto stai lavorando? Quale framework stai usando? Che lingua stai usando?
S.Lott

Linguaggio chiarito.
hpique

Risposte:


15

Di solito un "controller" è l'interfaccia tra un componente dell'interfaccia utente e un modello (ad es. Acquisto). I controller dovrebbero essere classi sottili, facendo poco più che mappare gli eventi dell'interfaccia utente sulle funzioni del modello.

Un "Manager" è un odore di codice. L'acquisto dovrebbe gestirsi da solo, oppure potrebbe essere gestito da una classe proprietaria, come Venditore o Acquirente.

Un "gestore" è generalmente una singola funzione racchiusa in un oggetto. Questi sono necessari durante la programmazione in linguaggi legacy senza funzioni di prima classe.


Anche se anche a me non piace il concetto di "Manager", penso che la logica per non averne la propria logica aziendale sia che il programmatore vuole separare un bean / pojo / dto dalle complesse operazioni aziendali.
Sridhar Sarnobat,

1
Mentre sono d'accordo con te sul Manager dal punto di vista dell'agnostica della lingua, vorrei aggiungere che un Manager può essere il termine corretto da usare in alcuni casi. Ad esempio, va bene parlare di manager da un punto di vista del protocollo, ad esempio. Per SNMP hai un Manager che "gestisce" un insieme di agenti. Questo è il termine corretto da utilizzare in questo caso. Ciò giustifica tuttavia gli usi spontanei di "Manager".
Patrik,

7

Mentre la mia risposta non si basa sulla definizione, vedo qualcosa etichettato come "Controller" come un'implementazione esclusiva rispetto a un "Gestore" come inclusivo . Mi aspetterei di vedere solo una esistenza di un "PurchaseController" e più possibili versioni di un "PurchaseHandler".

Penso che un altro nome comune per Controller sia "Broker" - che altera leggermente la prospettiva su di esso.


Grazie per queste definizioni. Hai messo molta conoscenza in poche righe.
acearch
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.