Ultimamente ho iniziato a pensare che avere molte classi manageriali nel tuo design sia una cosa negativa. L'idea non è maturata abbastanza per farmi un argomento convincente, ma ecco alcuni punti generali:
Ho scoperto che è molto più difficile per me capire i sistemi che dipendono fortemente dai "gestori". Questo perché, oltre agli attuali componenti del programma, devi anche capire come e perché viene utilizzato il gestore.
I manager, per la maggior parte del tempo, sembrano essere usati per alleviare un problema con la progettazione, come quando il programmatore non riusciva a trovare un modo per rendere il programma Just Work TM e doveva fare affidamento sulle classi manager per far funzionare tutto correttamente.
Certo, i mangiatori possono essere buoni. Un esempio ovvio è EventManager
uno dei miei costrutti preferiti di tutti i tempi. : P Il mio punto è che i manager sembrano essere abusati per la maggior parte del tempo, e per nessuna buona ragione se non mascherare un problema con l'architettura del programma.
Le classi manageriali sono davvero un segno di cattiva architettura?
EventManager
è un nome orribile per una classe. Apparentemente fa qualcosa con gli eventi, ma cosa ?
Of course, mangers can be good. An obvious example is an EventManager
spieghi tutto lì. Un uso improprio del concetto è una cattiva architettura, ma ci sono casi d'uso legittimi. Lo stesso vale per quasi tutto.