SOLID

SOLID to zestaw zasad projektowych stosowany przy programowaniu obiektowym.
Zasady SOLID służą do tworzenia bardziej elastycznego, modułowego i łatwego do utrzymania kodu. Ich stosowanie pomaga unikać nadmiernego powiązania między klasami, ułatwia testowanie i rozwijanie kodu oraz zapobiega „efektowi domina”, w którym zmiana w jednym miejscu powoduje konieczność modyfikacji wielu innych miejsc w kodzie.

  1. Single responsibility principle,
  2. Open-closed principle,
  3. Liskov substitution principle,
  4. Interface segregation principle,
  5. Dependency inversion principle

Single Responsibility Principle
Zasada pojedynczej odpowiedzialności: Każda klasa powinna mieć tylko jedną odpowiedzialność. Oznacza to, że klasa powinna być odpowiedzialna za realizację jednego, dobrze zdefiniowanego zadania, co ułatwia jej ponowne użycie i utrzymanie.

Open-Closed Principle
Zasada otwarte-zamknięte. Kod powinien być otwarty na rozszerzenie, ale zamknięty na modyfikację. Oznacza to, że istniejące zachowanie klasy powinno być łatwe do rozszerzenia przez dodanie nowych funkcjonalności, bez konieczności modyfikowania istniejącego kodu.

Liskov Substitution Principle
Zasada podstawiania Liskov. Obiekty danego typu powinny być zastępowalne przez obiekty ich podtypów, nie wpływając na poprawność programu. W praktyce oznacza to, że należy dbać o to, aby każdy podtyp dziedziczący po pewnym typie zachowywał się zgodnie z oczekiwaniami tego typu.

Interface Segregation Principle
Zasada segregacji interfejsów. Klienci nie powinni być zmuszani do zależności od interfejsów, których nie używają. Oznacza to, że interfejsy powinny być odpowiednio podzielone na mniejsze, bardziej sprecyzowane interfejsy, dostosowane do konkretnych potrzeb klientów.

Dependency Inversion Principle
Zasada odwrócenia zależności. Moduły powinny polegać na abstrakcjach, a nie na konkretnych implementacjach. Oznacza to, że zależności między modułami powinny być oparte na abstrakcyjnych interfejsach lub klasach bazowych, a nie na konkretnych klasach.

https://medium.com/@alejandrodiazjllo/s-o-l-i-d-principles-for-unity-a1556ee99e7c

Scroll to Top