Skip to main content

Mi a mixin?

A számítógépes programozásban a mixin egy olyan osztály, amelyet egy másik osztály örököl, de nem szánták, hogy azonnali legyen.Egyetlen osztály sok keveréket örökölhet, így sok funkciógyűjtemény könnyen konszolidálható.Noha sok általános programozási nyelv használja a Mixin módszertant, még sok más nem, beleértve a C ++ -ot és a Java -t.Általánosságban a mixinok megtalálhatók a szkript -nyelvekben, vagy azoknál a nyelvekben, amelyek képesek szkripteket létrehozni, mint például a JavaScript és a Perl.

A mixinok egyedülállóak, mivel az alosztály részévé válnak az összeállítás során.Módszereiket és állandóságaikat az alosztályban szerepelnek.A mixin osztályok másik egyedi tulajdonsága az, hogy a módszerek meghatározhatók és futásidejű objektumokhoz köthetők.A legtöbb nyelv eltérő megközelítést, kötődést és meghatározó módszereket alkalmaz a fordítási időben, nem pedig a futásidejében.Ez a futásidejű kötés lehetővé teszi, hogy a mixinek nagyon rugalmasak legyenek.Például, a többszörös öröklés úgynevezett halálos gyémántot hozhat létre, ahol az A szülői osztály B és C alosztályokkal rendelkezik, és a D osztály mindkét B és C osztályból örökölAz A, B és C osztályban szereplő név mind a D osztályba örökölhető, és ugyanazon módszer több változatát készítve egyértelmű megkülönböztetés nélkül.A mixinok úgy oldják meg ezt a problémát, hogy a módszer minden verzióját megkülönböztetik, ahelyett, hogy megpróbálnák felülírni őket, mint a szokásos többszörös öröklésben.Például, ha egy A osztály meghatározott egy módszert myMethod és egy mixin B -t örökölt, amely a MyMethod módszert is meghatározta, akkor mindkét módszer még kétértelműség nélkül is meghívható, és a MyMethod megvalósítása az A osztályban továbbra is teljesen elérhető.Pontosan az, hogy ezeket a módszereket hogyan hívnák, attól függ, hogy milyen nyelven alkalmazzák a keveréket.Ezeknek a nyelveknek az interfészek nem emulálják a mixinok teljes funkcionalitását, mivel az interfészek csak állandókat és módszernyilatkozatokat tartalmazhatnak.A mixinok viszont tartalmazhatnak módszereket.Azoknak a nyelveknek, amelyek nem támogatják a mixineket, gyakran életképes alternatívákkal rendelkeznek, amelyek nagyjából ugyanazt csinálják.