Zasady projektowania obiektowego – SOLID

W kontekście programowania SOLID to zasady, które pomagają programistom tworzyć bardziej elastyczny i łatwiejszy do utrzymania kod.

SOLID to skrót od pięciu zasad projektowania obiektowego:

  1. Single Responsibility Principle (SRP) – Zasada pojedynczej odpowiedzialności, która mówi, że każdy moduł, klasa lub funkcja powinny mieć tylko jedną odpowiedzialność.

Przykład: W aplikacji internetowej odpowiedzialność kontrolera może być tylko do odbierania żądań HTTP od klienta i przetwarzania danych, a nie do renderowania widoków.

  1. Open-Closed Principle (OCP) – Zasada otwarte/zamknięte, która mówi, że moduły, klasy lub funkcje powinny być otwarte na rozszerzenie, ale zamknięte na modyfikację.

Przykład: W aplikacji z zasadą OCP można dodać nowe funkcjonalności przez dziedziczenie klasy bazowej i dodanie nowych metod lub właściwości, zamiast modyfikować istniejący kod.

  1. Liskov Substitution Principle (LSP) – Zasada podstawienia Liskov, która mówi, że każdy obiekt klasy powinien być zastępowalny obiektem klasy bazowej.

Przykład: W aplikacji z zasadą LSP każda klasa dziedzicząca po klasie bazowej powinna mieć takie same metody i właściwości, jakie są dostępne w klasie bazowej.

  1. Interface Segregation Principle (ISP) – Zasada segregacji interfejsów, która mówi, że lepiej jest tworzyć wiele wąskich interfejsów niż jeden duży.

Przykład: W aplikacji z zasadą ISP lepiej jest tworzyć wiele interfejsów, które skupiają się na pojedynczych funkcjonalnościach, niż jedno ogólne, które zawiera wszystkie metody.

  1. Dependency Inversion Principle (DIP) – Zasada odwrócenia zależności, która mówi, że moduły, klasy lub funkcje powinny zależeć od abstrakcji, a nie od konkretnych implementacji.

Przykład: W aplikacji z zasadą DIP, jeśli klasa A potrzebuje klasy B, to A powinna zależeć tylko od interfejsu B, a nie od konkretnej klasy implementującej interfejs.