SOLID

Zbiór zasad opisujących pięć podstawowych założeń programowania obiektowego. Przestrzeganie tych reguł ma na celu wytwarzanie poprawnego, przejrzystego i łatwo rozszerzalnego kodu, który jest bardziej odporny na błędy i z którym się łatwiej i wydajniej pracuje.

[S] Single Responsibility Principle (SRP) - zasada pojedynczej odpowiedzialności - klasa powinna mieć tylko jedną odpowiedzialność (nigdy nie powinien istnieć więcej niż jeden powód do modyfikacji klasy).

[O] Open/Closed Principle (OCP) - zasada otwarte-zamknięte - składniki oprogramowania (klasy, moduły, funkcje itp.) powinny być otwarte na rozbudowę, ale zamknięte dla modyfikacji (przy zmianie wymagań nie powinien być zmieniany stary działający kod, ale dodawany nowy, który rozszerza zachowania).

[L] Liskov Substitution Principle (LSP) - zasada podstawiania Liskov - korzystanie z funkcji klasy bazowej musi być możliwe również w przypadku podstawienia instancji klas pochodnych.

[I] Interface Segregation Principle (ISP) - zasada segregacji interfejsów - wiele dedykowanych interfejsów jest lepsze niż jeden ogólny, reguła ta ma za zadanie przede wszystkich wyeliminowanie nieporęcznych, niepotrzebnie rozbudowanych interfejsów

[D] Dependency Inversion Principle (DIP) - zasada odwracania zależności - wysokopoziomowe moduły nie powinny zależeć od modułów niskopoziomowych, zależności między nimi powinny wynikać z abstrakcji.