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.