Skip to main content

Co je to mix?

V počítačovém programování je mix třída, která je zděděna jinou třídou, ale nemá být instancován.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í.

běžným problémem ve vícenásobném dědictví je nejednoznačnost při volání metody a mixiny mohou tento problém vyřešit, protože nedodržují přesně stejná pravidla jako vícenásobná dědičnost.Například mnohonásobné dědictví 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éJméno ve třídách A, B a C lze zdědit do třídy D, což vytváří více verzí stejné metody bez jasných rozdílů.Mixiny tento problém vyřeší tím, že udržujte každou verzi metody zřetelně, než se pokusit je přepsat jako ve standardní vícenásobné dědictví.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 implementace mymethod ve třídě A by byla stále zcela přístupná.Přesně to, jak by se tyto metody nazývaly, závisí na jazyce, ve kterém je mix implementován.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é lze přinutit, aby dělaly zhruba stejnou věc.