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 è EventManageruno 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 EventManagerspieghi tutto lì. Un uso improprio del concetto è una cattiva architettura, ma ci sono casi d'uso legittimi. Lo stesso vale per quasi tutto.