Co je to mix?

V počítačovém programování je mix třída, která je zděděna jinou třídou, ale není určena k instanci. Jedna třída může zdědit mnoho mixinů, tolik sbírek funkcí může být snadno konsolidováno. Ačkoli mnoho běžných programovacích jazyků používá metodiku mixinu, existuje mnoho dalších, které ne, včetně C ++ a Java. Obecně se mixiny nacházejí ve skriptovacích jazycích nebo v jazycích, které mají schopnost vytvářet skripty, jako jsou JavaScript a Perl.

mixiny jsou jedinečné v tom, že se během kompilace stávají součástí podtřídy. Jejich metody a konstanty jsou zahrnuty do podtřídy. Další jedinečnou vlastností tříd mixí je, že metody lze za běhu definovat a vázány na objekty. Většina jazyků používá odlišný přístup, vázání a definování metod v době kompilace spíše než za běh. Tato vazba runtime umožňuje, aby mixiny byly velmi flexibilní.

Společný problEM ve vícenásobné dědictví je nejednoznačnost při volání metody a mixiny mohou tento problém vyřešit, protože nesledují přesně stejná pravidla jako vícenásobná dědičnost. Například vícenásobná dědičnost může vytvořit tzv. „Diamant smrti“, kde má rodičovská třída A podtřídy B a C a třída D zdědí z obou tříd B a C. Problém v tomto scénáři je, že metody, které mají stejný název ve třídách A, B a C, mohou být zděděny do třídy D. Mixiny vyřeší tento problém tím, že udržujte každou verzi metody zřetelně, než se pokusit je přepsat jako ve standardním vícenásobném dědictví.

mixiny nepřepíše metody ve třídách, do kterých jsou zděděny. Například, pokud třída A definovala metodu „mymethod“ a zdědila mixin B, která také definovala metodu „mymethod“, “obě tyto metody by mohly být stále volány bez dvojznačnosti a implementaci„ mymethod “ve třídě A ve třídě Aby stále byl zcela přístupný. Přesně to, jak by se tyto metody nazývaly, závisí na jazyce, ve kterém je mix implementován.

Některé programovací jazyky, které nepoužívají mixiny, jako je Java, je napodobují rozhraní. Rozhraní v těchto jazycích nenapodobují plnou funkčnost mixinů, protože rozhraní mohou obsahovat pouze konstanty a prohlášení metod. Mixiny naproti tomu mohou obsahovat úplné implementace metod. Ty jazyky, které nepodporují mixiny, mají často životaschopné alternativy, které mohou být přinuceny, aby dělaly zhruba stejnou věc.

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?