SOLID jest to zestaw zasad dobrego programowania obiektowego. Stanowią fundament projektowania oprogramowania które mogą pomóc programistom tworzyć bardziej zorganizowane, elastyczne i łatwe w utrzymaniu systemy.
Druga zasada SOLID jest to zasada jednej odpowiedzialności (ang. single responsibility) sformułowana przez Robert C.Martin (Wujek Bob).
Jaka jest Definicja ?
Zgodnie z zasadą jednej odpowiedzialności każda klasa powinna mieć tylko jedną odpowiedzialność a więc tylko jeden powód do jej modyfikacji. W związku z tym, każda klasa powinna mieć tylko jedno, jasno zdefiniowane zadanie i odpowiadać za tylko jedną funkcję w programie. Natomiast każda zmiana powinna wynikać ze zmian w tym konkretnym zadaniu.
Jak to osiągnąć?
Przy projektowaniu klasy należy zidentyfikować jedną odpowiedzialność – jedno zadanie za które będzie odpowiedzialna.
Poniższy przykład klasy Adres łamie zasadę jednej odpowiedzialności ponieważ klasa Adres ma zadeklarowane dwa zadania: wyświetlanie adresu oraz weryfikację kodu pocztowego.
public class Adres {
public String miasto;
public String ulica;
public String kodPocztowy;
public void WyświetlAdres(){
...
}
private boolean WeryfikacjaKoduPocztowego(String kodPocztowy){
...
}
}Uwzględniając zasadę jednej odpowiedzialności, należy podzielić tę klasę na dwie osobne klasy. W taki sposób, aby każda klasa odpowiadała za jedną konkretną funkcję.
public class Adres {
public String miasto;
public String ulica;
public String kodPocztowy;
public WyświetlAdres(){
...
return true;
}
}
public class Weryfikacja {
public boolean WeryfikacjaKoduPocztowego(String kodPocztowy){
...
return true;
}
}