Co je složení pro dědictví?

Složení nad dědičností je programovací metodologie, která se používá v objektově orientovaných programovacích jazycích, aby pomohla vytvořit dynamičtější a proměnlivější vztahy mezi objekty v aplikaci. Základním formátem pro složení nad dědičností je zahrnutí instance objektu do jiného objektu. To se výrazně liší od objektově orientované metody dědičnosti, ale v mnoha modelech může sloužit stejnému účelu. Mezi výhody kompozice před dědičností patří dobře definované hranice mezi složenými objekty a objekty obalu, schopnost změnit implementaci objektu bez ovlivnění celé hierarchie dědičnosti a méně omezující rámec pro počáteční návrh programu. Některé z komplikací by však mohly zahrnovat obtíže při serializaci a příliš složité struktury velkých zavedených programů.

V objektově orientovaném programování je jednou ze zvláštností, které je třeba během návrhu stanovit, vztah mezi různými objekty. Dědičnost je centrální mechanismus v objektově orientovaném programování a umožňuje jednomu objektu zdědit všechna data a metody svého nadřazeného, ​​které pak může přidat, upravit nebo rozšířit vlastní implementací. Příkladem designu založeného na dědičnosti může být program, který má jednu hlavní třídu, která definuje auto a modeluje některé obecné atributy všech automobilů. Třída pro každou jednotlivou značku automobilu je potom vytvořena jako potomek hlavní třídy, ale definuje konkrétní informace, jako je velikost motoru, kapacita paliva nebo jiné informace specifické pro konkrétní značku automobilu.

Složení je vyjádřeno zahrnutím instancí objektu do jiných objektů. Pokud existuje hlavní třída, která definuje obecný automobil, pak místo vytváření podtříd pro konkrétní značky automobilů, by hlavní třída mohla místo toho obsahovat instance jiných objektů, které definují auto konkrétněji. To by mohlo znamenat, že hlavní třída automobilu by mohla obsahovat objekt pro typ motoru a jeden pro objem paliva, který by byl nastaven, když se třída použije k vytvoření instance konkrétní značky automobilu.

S kompozicí nad dědičností objekty, které jsou obsaženy v hlavní třídě, přímo nesouvisejí s hlavní třídou, což vývojářům poskytuje svobodu měnit způsob práce jednotlivých objektů. Problém, kterému může předcházet složení nad dědičností, je situace, ve které může být dědičný strom příliš hluboký, což znamená, že jakékoli změny třídy ve stromu mohou vyžadovat změny po délce stromu. Ne všechny objektově orientované jazyky mají podporu pro více dědičností a složení přes dědičnost je metoda, kterou lze použít k obcházení tohoto omezení.

JINÉ JAZYKY

Pomohl vám tento článek? Děkuji za zpětnou vazbu Děkuji za zpětnou vazbu

Jak můžeme pomoci? Jak můžeme pomoci?