SOLID = 5 zasad projektowania OO. S (Single Responsibility): klasa/moduł ma jedną odpowiedzialność (jedno zadanie) i powinna zmieniać się z jednego powodu. O (Open/Closed): rozszerzasz bez modyfikacji istniejącego kodu. L (Liskov Substitution): podtyp jest podmienialny (ten sam kontrakt). I (Interface Segregation): małe interfejsy, bez nieużywanych metod. D (Dependency Inversion): zależ od abstrakcji; implementacje wstrzykuj (DI).