Principio della singola responsabilità e livelli più alti di astrazione

2

Due frasi comuni per il Principio di Responsabilità Unica (SRP) sono "ciascun modulo dovrebbe essere responsabile di una singola funzionalità o funzionalità in un sistema" e "ogni modulo dovrebbe avere solo una ragione per cambiare".

Le mie domande sono: è questo qualcosa che dovremmo assolutamente cercare in ogni classe di un sistema, o dovrebbe essere rilassato quando combiniamo moduli di livello inferiore per comporre i moduli più astratti?

Nel caso estremo, il modulo di livello superiore in un sistema sarà responsabile dell'intera gamma di funzioni di sistema, quindi sembra che potrebbe non essere possibile rispettare l'SRP in questo tipo di modulo.

    
posta rick 12.03.2014 - 19:46
fonte

1 risposta

3

Se il modulo di primo livello delega tutte le sue funzionalità ai sottomoduli e li incolla solo, ciò lascia una responsabilità ("incollare gli altri moduli insieme") e una ragione per cambiare ("qualcosa di fondamentale è cambiato nell'architettura ciò richiede una modifica nel set di sottomoduli "). Ogni altra modifica al programma non dovrebbe causare una modifica al modulo di primo livello, ma solo i sottomoduli appropriati.

L'SRP è un ideale. Come tutti gli ideali, devi valutare il costo di perseguirlo contro i benefici che porta.

    
risposta data 13.03.2014 - 11:46
fonte

Leggi altre domande sui tag