Krzysiek Jelski natchnął mnie do napisania serii postów o zasadach programowania obiektowego. Występują one pod nazwą S.O.L.I.D., która to nazwa pochodzi od pierwszych liter tych zasad:

  • Single Responsibility Principle
  • Open-Close Principle
  • Liskov Substitution Principle
  • Interface Segregation Principle
  • Dependency Inversion Principle

Ten wpis będzie tylko wstępem, w którym omówię, czym są te zasady, skąd się wzięły i dlaczego są ważne.

OOP i programiści

Jeżeli zapytamy statystycznego programistę, z czym kojarzy mu się dobry kod OO, to najprawdopodobniej będzie mówił o wzorcach projektowych. Co poniektórzy wspomną o zasadach projektowania, enkapsulacji i hermetyzacji, dziedziczeniu, interfejsach. Niewielu wspomni o zasadach S.O.L.I.D.
Nic w tym dziwnego, bo zasady te nie są sformalizowane tak jak wzorce. Dobrze określił je Krzysiek na spotkaniu, mówiąc, że są raczej przysłowiami. Ja bym raczej nazwał je powiedzeniami informatyków. Każda z tych zasad odnosi się do jakiegoś bardzo ogólnego zagadnienia, czy to projektowego, czy to architektonicznego, czy też funkcjonalnego. Zazwyczaj do wszystkiego po trochu.
Jako że nie ma tu formalizacji, więc nie można mówić o miejscach i sposobach stosowania czy problemach, które można rozwiązać. Jeżeli jednak przyjrzymy się wzorcom projektowym, to dojdziemy do wniosku, że wszystkie one zawierają w sobie te nieformalne zasady.

Plan pracy

Przez kolejne dni będę omawiał poszczególne zasady. Jedna zasada na jeden wpis.