
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
- https://devcave.pl/notatnik-juniora/zasady-projektowania-kodu#composition-over-inheritance
- https://blog.helion.pl/dziedziczenie-vs-kompozycja/
- https://sarvendev.com/2017/10/kompozycja-ponad-dziedziczenie/
- https://javarevisited.blogspot.com/2013/06/why-favor-composition-over-inheritance-java-oops-design.html
- https://en.wikipedia.org/wiki/Composition_over_inheritance
1
/
30


Okienko w Liście - Group Focus in a Repeating Group| Bubble.io TUTORIAL

Tooltip | Bubble.io Quick Tip

Dodawanie i Pobieranie Plików - Upload and Download File | Bubble.io TUTORIAL

2 Kolumnowe Okienko Logowania - 2 Column Login Popup| Bubble.io Quick Tip

KB_ZW_0151 - Refleksje Na Temat Zarządzania Wiedzą: Przepływ

Dynamiczny formularz - Dynamic Form| Bubble.io Quick Tip

Przeglądanie PDFów - PDF File System| Bubble.io Quick Tip

Generowanie PDFa - Create PDFs| Bubble.io TUTORIAL

Zaproszenia do Zespołu - Team Invitations| Bubble.io TUTORIAL

Role Użytkowników - Visibility by User Roles| Bubble.io TUTORIAL

Generowanie SHA256 - Hash Text in SHA256| Bubble.io Quick Tip

KB_ZW_0150 - Refleksje Na Temat Zarządzania Wiedzą: Działanie

Przyciski udostępniania| Bubble.io TUTORIAL

Powiadomienia - Notifications| Bubble.io TUTORIAL

Strona profilowa - Profile Page| Bubble.io TUTORIAL

Wgrywanie Wielu Zdjęć - Picture Uploadin| Bubble.io TUTORIAL

Unikalność Loginów - Check If A Username Is Taken| Bubble.io Quick Tip

Dwa Dropdowny Wykluczające Się z Wartościami Domyślnymi| Bubble.io TUTORIAL

Dwa Dropdowny Wykluczające Się| Bubble.io TUTORIAL

Pełna lista w Repeating Group - Repeating Group Full List| Bubble.io Quick Tip

Przezroczyste tło nagłówka - Transition Header Background| Bubble.io TUTORIAL

KB_ZW_0149 - Refleksje Na Temat Zarządzania Wiedzą: Najważniejsze

Kopiowanie tekstu do schowka - Copy Text to Clipboard| Bubble.io Quick Tip

Kopiowanie elementów do inne aplikacji - Copy elements| Bubble.io Quick Tip

Automatyczne Wylogowywanie - Automatically Log an Inactive User Out| Bubble.io Quick Tip

Przetwarzanie danych w Popupie - Processing Data in Popups| Bubble.io TUTORIAL

Gra Wordle - Build Wordle| Bubble.io TUTORIAL BUDOWA APLIKACJI

Naucz się Tworzyć Aplikacje - Learn to Build Apps| Bubble.io TUTORIAL

Filtrowanie mnniejszych i większych niż - Filtering by Greater & Less Than| Bubble.io Quick Tip

KB_ZW_0148 - Refleksje Na Temat Zarządzania Wiedzą: Poranki
1
/
30
