Podsumowanie zasad SOLID i OOP

przez | 1 marca, 2020

Zakończyłem mój mini projekt: Poznaj zasady SOLID i OOP. W tym wpisie zbieram je wszystkie:

Single responsibility principle – Zasada jednej odpowiedzialności

Każda klasa powinna mieć tylko jedną odpowiedzialność (czyli tylko jeden powód do modyfikacji klasy) – jeden cel istnienia.

Open/closed principle – Zasada otwarte-zamknięte

Wszystkie klasy powinny być otwarte na rozszerzenia, ale zamknięte na modyfikacje.

Liskov substitution principle – Zasada podstawienia Liskov

Oprogramowanie powinno dobrze działać, gdy w miejsce klasy bazowej podstawimy jej którąkolwiek klasę potomną.

Interface segregation principle – Zasada segregacji interfejsów

Wiele dedykowanych i małych interfejsów jest lepsze niż jeden ogólny.

Dependency inversion principle – Zasada odwróconej zależności

Wysokopoziomowe moduły nie powinny zależeć od modułów niskopoziomowych, lecz zależność powinna wynikać z abstrakcji.

Podstawowe założenia programowania obiektowego

Hermetyzacja

Hermetyzacja polega na ukryciu szczegółów implementacji. Obiekty przedstawiają publiczny interfejs, który mogą wywoływać inne obiekty. Obiekt może zmieniać tylko swój stan. Nikt inny nie może tego robić.

Dziedziczenie

Mechanizm dający możliwość tworzenia wyspecjalizowanych obiektów na podstawie obiektów ogólniejszych. Pozwala to współdzielić funkcjonalności. Obiekt wyspecjalizowany może wykorzystywać część definicji obiektu ogólniejszego i rozszerzać go lub zmieniać.

Polimorfizm

Mechanizm umożliwiający traktowanie różnych obiektów w jeden sposób dziedziczących tę samą klasę.

Abstrakcja

Obiekty są modelami abstrakcyjnych bytów, które wykonują powierzone im zadania bez zdradzania, jak te działania są realizowane. Przedstawiają one uproszczenie danego zagadnienia.

KISS — Keep it simple, stupid — Bez udziwnień zapisu, idioto (BUZI)

Twórz rozwiązanie w sposób jak najprostszy.

Lod — Law of Demeter, czyli Prawo Demeter (Zasada minimalnej wiedzy / Reguła ograniczenia interakcji)

Rozmawiaj tylko z bliskimi przyjaciółmi.

DRY — Don’t repeat yourself — Nie powtarzaj się

Nie powtarzaj tego samego rozwiązania.

SLAP — Single Level of Abstraction Principle — Pojedynczy poziom abstrakcji

Wszystkie linie kodu w metodzie powinny mieć ten sam poziom abstrakcji. Nie można mieszać niskopoziomowych i wysokopoziomowych detali w jednej metodzie.

Composition Over Inheritance — Kompozycja ponad dziedziczeniem

Lepiej korzystać jest z kompozycji (klasa A używa klasy B) zamiast dziedziczenia po klasie.

Encapsulate what may change — Ukrywaj zmieniające się rzeczy

Ukrywaj zmieniające się rzeczy pod stabilnym interfejsem.

Wszystkie posty związane z mini projektem: Poznaj zasady SOLID i OOP:

Źródła

Obrazek nagłówka

Obrazki

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *