Przejdź do zawartości

SOLID

Z Wikipedii, wolnej encyklopedii

SOLIDmnemonik zaproponowany przez Roberta C. Martina, opisujący pięć podstawowych założeń programowania obiektowego: zasady jednej odpowiedzialności (ang. single responsibility), zasady otwarte-zamknięte (ang. open-close), zasady podstawienia Liskov (ang. Liskov substitution principle), zasady segregacji interfejsów (ang. interface segregation principle) oraz zasady odwrócenia zależności (ang. dependency inversion principle)[1].

Nazwę SOLID zaproponował Michael Feathers, który zauważył, że jeśli ułożyć zasady, zebrane przez Martina, w innej kolejności, pierwsze liery utworzą słowo SOLID[2].

Inicjał Skrót Koncepcja
S SRP[3]
Single responsibility principle (Zasada jednej odpowiedzialności)
Klasa powinna mieć tylko jedną odpowiedzialność (nigdy nie powinien istnieć więcej niż jeden powód do modyfikacji klasy).
O OCP[4]
Open/closed principle (Zasada otwarte-zamknięte)
Klasy (encje) powinny być otwarte na rozszerzenia i zamknięte na modyfikacje.
L LSP[5]
Liskov substitution principle (Zasada podstawienia Liskov)
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.
I ISP[6]
Interface segregation principle (Zasada segregacji interfejsów)
Wiele dedykowanych interfejsów jest lepsze niż jeden ogólny.
D DIP[7]
Dependency inversion principle (Zasada odwrócenia zależności)
Wysokopoziomowe moduły nie powinny zależeć od modułów niskopoziomowych - zależności między nimi powinny wynikać z abstrakcji.

Zobacz też

[edytuj | edytuj kod]

Przypisy

[edytuj | edytuj kod]
  1. Principles of Ood. [dostęp 2012-01-08].
  2. Robert C. Martin: Czysta architektura. Helion, 2022, s. 78. ISBN 83-283-9109-0. (pol.).
  3. Single Responsibility Principle. [dostęp 2015-09-05].
  4. Open/Closed Principle. [dostęp 2015-09-05].
  5. Liskov Substitution Principle. [dostęp 2015-09-05].
  6. Interface Segregation Principle. [dostęp 2015-09-05].
  7. Dependency Inversion Principle. [dostęp 2015-09-05].