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:

Kapcsolódó cikkek