SOLID oznacza zestaw podstawowych zasad projektowania oprogramowania, używanych do tworzenia łatwych w utrzymaniu, rozszerzalnych i elastycznych systemów. SOLID jest akronimem utworzonym z pierwszych liter tych pięciu zasad:
S- Single Responsibility Principle
Klasa lub moduł powinny mieć tylko jedną odpowiedzialność. Pomaga to w łatwiejszej konserwacji i modyfikacji kodu bez wpływu na inne funkcjonalności.
O- Open/Closed Principle
Kod powinien być otwarty na rozbudowę(dodanie nowych funkcji), ale zamknięty na modyfikację(nie modyfikację istniejącego kodu). Zachęca to do korzystania z dziedziczenia, interfejsów lub innych mechanizmów rozszerzających w celu dodawania nowych funkcji bez modyfikowania istniejącego kodu.
L- Liskov Substitution Principle
Obiekty podklasy muszą być zastępowalne dla obiektów klasy nadrzędnej bez wpływu na poprawność programu. Zapewnia to bezpieczną i poprawną implementację dziedziczenia.
I- Interface Segregation Principle
Lepiej mieć małe i specyficzne interfejsy niż duży interfejs z wieloma metodami. Pomaga to uniknąć zmuszania klas do implementowania niepotrzebnych metod.
D- Dependency Inversion Principle
Moduły wysokiego poziomu nie powinny zależeć od modułów niskiego poziomu. Oba powinny zależeć od abstrakcji. Ta zasada zachęca do stosowania wstrzykiwania zależności w celu zmniejszenia ścisłego powiązania między modułami i ułatwienia testowania i rozszerzania systemu.
SOLID zasady poprawiają strukturę kodu, promują modułowość i zmniejszają ryzyko związane ze zmianami. Zasady te można stosować w różnych językach programowania i środowiskach programistycznych.