Zasady SOLID: 1. Zasada pojedynczej odpowiedzialności(Single responsibility)

Zasada pojedynczej odpowiedzialności mówi o tym, że każda klasa powinna odpowiadać za jedną konkretną rzecz, powinien być tylko jeden powód do modyfikacji klasy.

To jest najważniejsza zasada SOLID, dzięki niej nie będziemy mieć klas potworów po 2000 linijek😐, które będą odpowiadały za wszystko za to będziemy mieć dużo małych klas odpowiadających za różne części programu.

Duże klasy zawsze jest trudniej utrzymywać, rozwijać i refaktoryzować, budowanie dużych klas zawsze prędziej czy później prowadzi do problemów np takich, że jeśli w naszym projekcie będzie klasa, która będzie odpowiadała za wszystko to w miare rozbudowy tej klasy zmieniając jej funkcjonalności będziemy wpływać również na zupełnie inne obszary tej klasy, co w dużych🖥 projektach prowadzi do tego, że stają się one po prostu niemożliwe do rozbudowy oraz modyfikacji.

Natomiast tworząc wiele małych klas zwiększasz czytelność, łatwość rozbudowy i ogólnie mówiąc łatwość zarzadzania kodem projektu.

Przejdźmy do praktycznych przykładów, przykładem klasy łamiącej zasadę pojedynczej odpowiedzialności jest ta podana we wstępie:

Co my tu mamy, klasa Products, która jest odpowiedzialna za wszystko, za złożenie zamówienia, klientów, obliczenie produktów, dodanie produktów, ilość zmiennych na samej górze klasy również nie wygląda zachęcająco, zapomniałem też wspomnieć, że zasada pojedynczej odpowiedzialności odnosi się nie tylko do klas, ale również do metod, żeby jedna czy kilka metod nie robiły wszystkiego, też trzeba starać sę robić jak najkrótsze metody, najlepiej żeby wykonywały tylko jedną operację.

A my mamy tu pare metod, które robią wszystko. Stanowczo gdybyśmy robili jakiś praktyczny projekt nie moglibyśmy✋ tego tak zostawić, tak powinno to wszystko wyglądać:

No i czy to nie wygląda lepiej, mamy konkretne klasy i metody, które odpowiadają za konkretnę częsci logiki sklepu, kod stał się o wiele bardziej czytelny, łatwiejszy do zrozumienia i modyfikowania, również nazwy klas i metod poprawiliśmy. Oczywiście, pewnie można tu coś jeszcze ulepszyć w każdym kodzie nieważne jak byłby ładnie napisany, jak bardzo byłby czytelny, gdyby spełniał wszystkie zasady programowania nie tylko SOLID, zawsze można coś ulepszyć.

Ale chyba przyznasz, że to jest o wiele lepsze rozwiązanie, niż to w którym nie ma zastosowania zasady Single responsibility.

A poniżej wywołania w funkcji Main:

Wynik:

Link do githuba z całym kodem z tego artykułu:  https://github.com/Slaw145/SingleResponsibility

Podsumowanie

W następnej lekcji jak pewnie się domyślasz będzie omówienie kolejnej zasady SOLID, otwarty- zamknięty(open-closed).

Standardowo, przypominam o newsletterze, którym wysyłam powiadomienia o nowych wpisach oraz dodatkowe informacje na temat, ogółem mówiąc, świecie IT.🙂

Link do strony i grupy na fb:

-strona na fb: Devman.pl-Sławomir Kowalski

-grupa na fb: DevmanCommunity

Do zobaczenia w następnym artykule🙂

 
Jeśli ten wpis ci się przydał podziel się nim ze swoimi znajomymi :)

Post a comment

avatar
  Subscribe  
Notify about