Skip to main content

Co to jest skład nad dziedzictwem?

Kompozycja nad dziedziczeniem jest metodologią programowania, która jest stosowana w językach programowania zorientowanych na obiekty, aby pomóc w ustaleniu bardziej dynamicznych i zmiennych relacji między obiektami w aplikacji.Podstawowym formatem składu nad dziedziczeniem jest włączenie instancji obiektu wewnątrz innego obiektu.To wyraźnie różni się od obiektowej metody dziedziczenia, ale może służyć temu samemu celowi w wielu modelach.Zalety składu nad dziedzictwem obejmują dobrze zdefiniowane granice między obiektami komponowanymi a obiektami opakowania, zdolność do zmiany wdrażania obiektu bez wpływu na całą hierarchię dziedziczenia oraz mniej restrykcyjne ramy do początkowego projektu programu.Niektóre komplikacje mogą jednak obejmować trudności w serializacji i zbyt złożone struktury w dużych, ustalonych programach.

W programowaniu zorientowanym na obiekt, jedną z cech, które są ważne do ustalenia podczas projektowania, jest sposób, w jaki różne obiekty odnoszą się do siebie.Dziedziczenie jest centralnym mechanizmem programowania zorientowanego na obiekt i pozwala jednego obiektu odziedziczyć wszystkie dane i metody jego rodzica, do których może następnie dodać, modyfikować lub rozszerzyć wraz z własną implementacją.Przykładem projektu opartego na dziedzictwie może być program, który ma jedną główną klasę, która określa samochód i modeluje niektóre ogólne atrybuty wszystkich samochodów.Klasa dla każdej indywidualnej marki samochodu jest następnie wykonana jako potomek klasy głównej, ale określa określone informacje, takie jak wielkość silnika, pojemność paliwa lub inne informacje specyficzne dla tej konkretnej marki samochodu.

Kompozycja jest wyrażana poprzez włączenie obiektuinstancje w innych obiektach.Jeśli istnieje główna klasa, która definiuje samochód ogólny, zamiast tworzenia podklas dla określonych marek samochodów, główna klasa może zamiast tego zawierać instancje innych obiektów, które bardziej definiują samochód.Może to oznaczać, że główna klasa samochodu może zawierać obiekt dla typu silnika i jeden dla pojemności paliwowej, który byłby ustawiony, gdy klasa jest używana do stworzenia instancji określonej marki samochodu.

z składem nad dziedzictwem,Obiekty zawarte w klasie głównej nie są bezpośrednio związane z klasą główną, co daje programistom swobodę zmiany działania poszczególnych obiektów.Problem, który skład nad dziedziczeniem może pomóc w zapobieganiu, jest sytuacja, w której drzewo dziedziczenia może być nadmiernie głębokie, co oznacza, że wszelkie modyfikacje klasy na drzewie mogą wymagać zmian w dół długości drzewa.Nie wszystkie języki obiektowe mają obsługę wielu dziedziczeń, a skład nad dziedziczeniem jest metodą, którą można użyć do obejścia tego ograniczenia.