SOLID - zasady zaproponowane przez Roberta Martina.
- Single Responsibility: zasada jednej odpowiedzialności
- Open-Close: zasada jednej odpowiedzialności
- Liskov substitution principle: zasada podstawienia Liskov
- Interface segregation principle: zasada segregacji interfejsów
- Dependency inversion principle: zasada odwracania zależności
- Single Responsibility Principle
- W skrócie: "Nigdy nie powinno być więcej niż jednego powodu do modyfikacji klasy". Sprowadza się to w praktyce do tworzenia wyspecjalizowanych klas, które odpowiadają za ściśle określony jeden obszar.
- Open-Close Principle
- Zasada ta mówi nam, że klasy powinny być otwarte na rozszerzenie, ale zamknięte na modyfikacje. W praktyce oznacza to, że zmiany nie powinny skutkować modyfikacją istniejącego kodu źródłowego. Powinniśmy, więc umieć przewidywać kierunki zmian w projekcie.
- Liskov Substitution Principle
- "Funkcje które używają wskaźników lub referencji do klas bazowych, muszą być w stanie używać również obiektów klas dziedziczących po klasach bazowych, bez dokładnej znajomości tych obiektów". Musi więc istnieć możliwość zastępowania typów bazowych ich podtypami
- Interface Segregation Principle
- Zasada ta mówi nam aby dzielić rozbudowane interfejsy, na mniejsze, w taki sposób, aby klient nie wiedział o istnieniu metod, które są dla niego nieużyteczne. Tworzenie wyspecjalizowanych interfejsów daje bowiem większe możliwości.
- Dependency Inversion Principle
- Zasada ta mówi o tym, aby tam gdzie to tylko możliwe, tworzyć zależności w oparciu o abstrakcje, a nie konkretne implementacje.