SOLID określa pięć zasad programowania i projektowania obiektowego:
– zasada pojedynczej odpowiedzialności (ang. Single Responsibility
Principle, SRP),
– zasada otwarty/zamknięty (ang. Open/Closed Principle, OCP),
– zasada podstawienia Liskov (ang. Liskov Substitution Principle, LSP),
– zasada segregacji interfejsu (ang. Interface Segregation Principle, ISP),
– zasada odwracania zależności (ang. Dependency Inversion Principle, DIP).

Zasada pojedynczej odpowiedzialności
Obiekt klasy powinien odpowiadać za jedną rzecz. Jeżeli występują minimum dwa powody do zmiany klasy, powinny zostać wyodrębnione do oddzielnych klas.

Zasada otwarty/zamknięty
Elementy oprogramowania (klasy, moduły, funkcje, itp.) powinny być otwarte na rozszerzenia ale zamknięte na modyfikacje” (Meyer, Bertrand (1988). Object-Oriented Software Construction).

Zasada podstawienia Liskov
Obiekty powinny być zastępowalne bez konieczności zmiany w implementacji.

Zasada segregacji interfejsu
Klasy powinny używać interfejsów, ale w ograniczonym stopniu, zapobiegając tworzeniu rozbudowanych klas.

Ograniczenie interfejsów zapewni łatwiejsze utrzymanie, refaktoryzację, zmianę, a przede wszystkim ograniczony dostęp do obiektu.

Zasada odwracania zależności
Moduły z wysokiej warstwy powinny zależeć od modułów z niskiej warstwy tylko na podstawie abstrakcji.
High-level modules should not depend on low-level modules. Both should depend on abstractions.
Przy czym abstrakcja nie powinna zależeć od szczegółów, lecz odwrotnie.

Kategorie: Programowanie