Composition Over Inheritance, czyli Kompozycja ponad dziedziczeniem

przez | 1 marca, 2020

Composition Over Inheritance, czyli Kompozycja ponad dziedziczeniem

Zasada mówi, że lepiej korzystać jest z kompozycji (klasa A używa klasy B) zamiast dziedziczenia po klasie. Stosując dziedziczenie, należy pamiętać, aby nie złamać Zasady podstawienia Liskov.

Zasada nie mówi, że mamy całkowicie zrezygnować z dziedziczenia.

Przykład:

Mamy Pracownika i Kierownika.

Dziedziczenie: Obaj mają imię i nazwisko. Mogą oni dziedziczyć po klasie Pracownik.

Kompozycja: Obaj mają wyliczaną pensję. Tutaj lepiej jest wstrzyknąć w Pracownika i Kierownika klasę, która odpowiada za wyliczenie ich pensji.

Zalety

  • Mniejsza zależność między klasami.
  • Rozbicie klas na mniejsze (rozbicie odpowiedzialności na różne klasy).
  • Łatwiej zachować zgodność z zasadami SOLID.
  • Łatwiejsze testowanie kodu.

Wady

  • Czasem lepiej zastosować dziedziczenie.

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

[catlist name=”projekt-poznaj-zasady-solid-i-oop” pagination=yes orderby=date order=asc author=no numberposts=100]

Źródła

Obraz główny

Materiały

Dodaj komentarz

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