Cercare di comprendere il principio di responsabilità singola [chiuso]

0

Ho difficoltà a capire il Single Responsibility Principle .

Che cosa dovrei cercare per valutare le varie fonti di informazione in merito?
Cosa devo cercare negli esempi che spiegano il principio?

    
posta GlenH7 15.02.2011 - 23:20
fonte

2 risposte

7

SRP è un principio abbastanza diretto.

the single responsibility principle states that every object should have a single responsibility, and that responsibility should be entirely encapsulated by the class. All its services should be narrowly aligned with that responsibility.

- link

A class should have one, and only one, reason to change.

- link

Spesso, trovo la seconda citazione più applicabile. Cerco di immaginare cosa fa la mia classe. Quale logica contiene o quali servizi esterni (alla classe) potrebbero dipendere.

Cerco di pensare a cosa potrebbe cambiare, e come questo potrebbe causare il cambiamento della mia classe. Ci sono più cose che potrebbero cambiare e influenzare la mia classe? Questo è un odore di codice (ma non sempre è una ragione sufficiente per dividere una classe).

Inoltre, mentre sto pensando in questo senso, cerco casi in cui diverse classi dovranno cambiare se cambia un'altra cosa (logica, servizio esterno, ecc.). Anche questo è un odore di codice.

Spesso, però, ho piccoli gruppi di classi strettamente accoppiate che coordinano o interagiscono per eseguire una singola funzione o servizio. Se i cambiamenti avvengono attraverso questo insieme di classi strettamente accoppiate, lo trovo ok. Ma se un cambiamento in, diciamo, un servizio esterno richiede cambiamenti in più classi in diverse aree della mia applicazione, questo è un odore di codice più puzzolente.

    
risposta data 15.02.2011 - 23:44
fonte
2

Pluralsight ha un corso Principi di progettazione orientata agli oggetti che copre SRP come primo argomento in circa 12 minuti. Credo che tu abbia un paio d'ore di video gratis, dopodiché avrai bisogno di un abbonamento.

    
risposta data 08.03.2012 - 07:17
fonte

Leggi altre domande sui tag