SOLID to akronim pięciu wzorców projektowych, dzięki którym kod oprogramowania jest bardziej zrozumiały.
Pierwsze dwa (SO) są ściśle powiązane z Clean Code, pozostałe są nieco mniej ważne. Przeanalizujmy je krok po kroku:
Zajęcia powinny mieć jedną odpowiedzialność. Mniej obowiązków oznacza, że nie będziemy zmieniać klasy z więcej niż jednego powodu.
Klasa powinna być otwarta na rozszerzenie, ale zamknięta na modyfikację (zmianę). Co to oznacza?
Zasada mówi tak: „Obiekty powinny być wymiennymi potomkami siebie nawzajem, bez zmiany zachowania systemu”. Zasadniczo chodzi o zachowanie hierarchii dziedziczenia i wybór dobrych przodków dla naszych potomków.
Zasada ta mówi, że kilka konkretnych interfejsów jest lepszych niż jeden duży.
Ta zasada mówi, że „wolę polegać na abstrakcjach, a nie na konkretach”. Typowym zastosowaniem tej reguły jest sytuacja, gdy cała klasa lub metoda akceptuje obiekt, z którym może pracować zgodnie z metodami publicznymi, najlepiej interfejsem.
Metoda lub klasa nie ma wówczas znaczenia, czy jest klasą nadrzędną, klasą potomną i jaki to konkretny obiekt. Mogą z nim pracować bez konieczności znajomości (niepotrzebnych) szczegółów i kodu.
Marián Knězek