Skip to main content

Ano ang isang mixin?

Sa computer programming, ang isang mixin ay isang klase na minana ng isa pang klase ngunit hindi sinasadya na ma -instantiate.Ang isang solong klase ay maaaring magmana ng maraming mga mixins, kaya maraming mga koleksyon ng mga pag -andar ay maaaring pinagsama -sama nang madali.Bagaman maraming mga karaniwang wika ng programming ang gumagamit ng pamamaraan ng mixin, marami pa ang hindi, kabilang ang C ++ at Java.Sa pangkalahatan, ang mga mixins ay matatagpuan sa mga wika ng scripting o mga wikang iyon na may kakayahang lumikha ng mga script, tulad ng JavaScript at Perl.Ang kanilang mga pamamaraan at constants ay kasama sa subclass.Ang isa pang natatanging katangian ng mga klase ng mixin ay ang mga pamamaraan ay maaaring tukuyin at nakasalalay sa mga bagay sa runtime.Karamihan sa mga wika ay gumagamit ng ibang diskarte, nagbubuklod at pagtukoy ng mga pamamaraan sa pag -compile ng oras sa halip na runtime.Ang pagbubuklod ng runtime na ito ay nagbibigay -daan sa mga mixins na maging napaka -kakayahang umangkop.Halimbawa, ang maraming mana ay maaaring lumikha ng isang tinatawag na brilyante ng kamatayan, kung saan ang isang klase ng magulang A ay may mga subclass B at C, at isang klase D na nagmamana mula sa parehong mga klase B at C. Ang problema sa sitwasyong ito ay ang mga pamamaraan na may parehoAng pangalan sa mga klase A, B at C ay maaaring magmana sa Class D, na gumagawa ng maraming mga bersyon ng parehong pamamaraan na walang malinaw na pagkakaiba.Malutas ng Mixins ang problemang ito sa pamamagitan ng pagpapanatili ng bawat bersyon ng pamamaraan na natatangi, sa halip na subukang i -overwrite ang mga ito tulad ng sa karaniwang maramihang mana.Halimbawa, kung ang isang klase A ay tinukoy ng isang pamamaraan na mymethod at minana ang isang mixin B na tinukoy din ang pamamaraan ng MyMethod, ang parehong mga pamamaraan na ito ay maaari pa ring tawagan nang walang kalabuan, at ang pagpapatupad ng MyMethod sa Klase A ay magiging ganap na maa -access.Eksakto kung paano tatawagin ang mga pamamaraan na ito ay nakasalalay sa wika kung saan ipinatupad ang mixin.

Ang ilang mga wika sa programming na hindi gumagamit ng mga mixins, tulad ng Java, ay gumagamit ng mga interface upang gayahin ang mga ito.Ang mga interface sa mga wikang ito ay hindi tularan ang buong pag -andar ng mga mixins, dahil ang mga interface ay maaaring maglaman lamang ng mga constants at pagpapahayag ng pamamaraan.Ang mga Mixins, sa kabilang banda, ay maaaring maglaman ng buong pagpapatupad ng mga pamamaraan.Ang mga wikang iyon na hindi sumusuporta sa mga mixins ay madalas na may mabubuhay na mga alternatibo na maaaring coaxed upang gawin ang halos parehong bagay.