Mi a metaclass a perl
Mi a metaclass. Mik metaclasses. Mi a meta-objektum protokollt. Mi osztály :: MOP. Miért érdemes Class :: MOP.
Mik metaclasses?
Az OOP egy metaclass egy osztály, amelynek példányai nem tárgyak, mint mindig, és az osztályok. Csakúgy, mint egy normál osztály határozza meg a viselkedését néhány tárgy, egy metaclass határozza meg a viselkedését néhány osztályok és példányok.
Nem minden programozási nyelv, amely támogatja az OOP paradigma támogatja metaclasses. Ugyanakkor, a támogatás mértékét metaclasses minden nyelv is egészen más. Különböző valamint végrehajtási és meta-objektum protokoll, az elvek, amelyek kölcsönhatása objektumok, osztályok, és metaclasses.
A legkedveltebb nyelvek támogatják metaclasses: Objective-C, Python, Perl és Ruby.
Néha az ötlet metaclasses összehasonlítjuk a mintázat „Factory”.
Mik metaclasses?
Az az elképzelés, metaclasses történik egy objektum-orientált programozási nyelvek. Ezzel megvalósult a teljes rekurzív rendszer kialakítása. Hasznos, ha dolgozik osztályhierarchiák.
Perl tiszta formájában, metaclasses ötlet teljesen idegen. Bár érdekes abból a szempontból az architektúra és a végrehajtás.
Mi a meta-objektum protokoll?
Meta-objektum protokoll - mechanizmus meghatározása és az új metaclasses.
Meta-objektum protokoll meghatározza a funkciók, hogy magukban foglalnak eljárásokat osztályok. Programozási metaobjektum protokoll szintjén - annak meghatározása, új osztályok, valamint módszereket ezen osztályok.
Metaclasses a perl
Tiszta Perl 5 fogalmakat, mint egy csomagot, osztály, módszer, kivitelező nem rendelkezik különbségeket és a határokat. A koncepció a tulajdonság hiányzik.
Végrehajtása metaclasses Perl segítségével metaobjektum protokoll, amely képviseli a Class :: MOP rendszer. Class :: MOP és metaclasses széles körben használják a népszerű Moose (A hivatalos meghatározás: «Moose - kiterjesztés Perl 5, egyszerűsítik a végrehajtás a PFSZ” Nem értek egyet azzal, hogy a jávorszarvas van valami könnyebb azt hiszem, minden teljesen az ellenkezője ..) .
Class :: MOP egyértelműen meghatározza a fogalmakat az osztályok, módszerek, csomagok, hozzáadja a koncepció attribútumot. Moose köszönhetően Class :: MOP, hozza a PFSZ perl az általánosan elfogadott normáknak.
Ie sőt, Class :: MOP - ez több, mint egy módja annak, hogy hozzon létre metaclasses.
Meta-objektum protokoll perl, Class :: MOP
Meta-objektum protokoll teremt elvont fogalmak osztályok, módszerek, tárgyak, attribútumok. Ez az absztrakció lehet használni, hogy ellenőrizze és szabályozza a rendszer elemeinek, ami alapján leírni.
A felkészületlen személy Ez az egész úgy hangzik, mint baromság. Ezért a legjobb, ha kezdi megérteni metaclasses és meta-objektum protokoll példákat.
Meta-objektum protokoll végre Perl modul osztály :: MOP és magában foglalja a 4 al-protokoll:
- Class protokoll - Class Management. Keresztül végrehajtott Class :: MOP :: osztály.
- Képesség protokoll - Munkagépek kezelési osztály attribútumait. Keresztül végrehajtott Class :: MOP :: Képesség. Meg lehet hosszabbítani öröklés útján.
- Módszer protokoll - eszköz dolgozik a módszerek az objektum rendszer. Keresztül végrehajtott Class :: MOP :: módszer.
- Például protokoll - Biztosítja bizonyos absztrakciós szinten létrehozni példányait tárgyakat. Keresztül végrehajtott Class :: MOP :: Bíróság
Például protokoll ma nem kell figyelembe venni.
class protokoll
Class :: MOP :: osztály - Class metaobjektum. Ez a protokoll a legnagyobb és legösszetettebb része a Class :: MOP.
Class :: MOP :: osztály alosztálya osztály :: MOP :: modult. Class :: MOP :: Modul viszont egy alosztálya osztály :: MOP :: Package. Csomag jegyzőkönyv absztrakció perl-csomagok és módszereket dolgoznak névterek.
A létrehozott objektum lesz a tárgya a metaclass.
Ha megpróbálja újra létrehozni az objektumot, majd csak kap egy linket egy már létrehozott példányt.
Szabályozására szolgáló eljárások öröklési
Tudod kap egy listát az összes al-osztály, vagy éppen ellenkezőleg, hogy legyen az örökös egy osztály. Módszerekkel dolgozó @ISA.
módszert kínál a módszer az osztály
Akkor használja ezt a típusú módszerek létrehozása osztály módszerek, eltávolításuk vagy módosítását. Ezek a módszerek a munkájukat fog utalni tárgyak osztály :: MOP :: módszer.
módszerei dolgozó osztály attribútumok
Technikák fog működni a tárgyak Class :: MOP :: Képesség. Alkalmazott módszerek meghatározása, keresés, olvasni, és törölje attribútumait osztályok.
módszerek fagyasztás
Ez egy lehetőség, hogy adjunk néhány kódot, ha hívja a osztály metódus lefut a végrehajtás előtt (mielőtt a módosító), miután a (miután módosító) és végrehajtása során a fő kód (kb módosító).
Alkalmazási példa osztály :: MOP :: Class
Bővítése a funkcionalitást egy már meglévő osztály
Osztályú meglévő, Meta.pm modul:
Ekkorra a koncepció metaclasses váltak világossá.
Képesség protokoll
Attribútum protokollt - a találmány osztály :: MOP. Perl 5 nem támogatja az attribútumokat. Az sokkal fontosabb, hogy megértsük, mi az.
osztály vagy attribútum egy objektum - változó társított egy osztály vagy tárgy. Hozzáférés az attribútumok végzik a nevükben. Ezek a tulajdonságok eltérnek az adatok, amely tartalmazza az objektumot, és ezekhez csak az objektum módszereket.
A perl programozó természetesen felveti azt a kérdést - mi a szükséges? Válasz: Nem minden annyira cool nyelv, mint a perl.
Néhány objektum-orientált programozási nyelvek (pl Java) nincs globális változókat. Ebben az esetben, az osztályok az attribútumok az egyetlen módja annak, hogy tárolja és használata a globális adatokat.
Munka attribútumok osztályba :: MOP :: osztály. véleményem, csúnya és nem kényelmes. Itt egy példa.
Meta4.pm modulfájlokba: