| Klasse :: Meta. Klasse :: Meta ist eine Perl-Klasse-Automatisierung, Introspektion und Datenvalidierung. |
Jetzt downloaden |
Klasse :: Meta. Ranking & Zusammenfassung
- Lizenz:
- Perl Artistic License
- Name des Herausgebers:
- David Wheeler
- Website des Verlags:
- http://search.cpan.org/~dwheeler/
Klasse :: Meta. Stichworte
Klasse :: Meta. Beschreibung
Class :: Meta ist eine Perl-Klasse Automatisierung, Selbstbeobachtung und Datenvalidierung. Class :: Meta ist eine Perl-Klasse Automatisierung, Selbstbeobachtung und Daten validation.SYNOPSISGenerate eine Klasse: package MyApp :: Thingy; use strict; verwenden Class :: Meta; Verwendung Klasse :: Meta :: Typen :: String; verwenden Class :: Meta :: Typen :: Numeric; BEGIN {# eine Klasse :: Meta-Objekt für diese Klasse erstellen. my $ cm = Klasse :: Meta-> new (key => 'Dingen'); In # Konstruktor. $ Cm-> add_constructor (name => 'new', erstellen => 1); # Ein paar Attribute mit generierten Methoden hinzufügen. $ Cm-> add_attribute (name => 'UUID', authz => Klasse :: Meta :: READ, type => 'string', erforderlich => 1, default => sub {Data :: UUID-> neuen-> create_str}); $ Cm-> add_attribute (name => 'name', ist => 'string', erforderlich => 1, default => undef,); $ Cm-> add_attribute (name => 'Alter' ist => 'integer', default => undef,); # Eine benutzerdefinierte Methode hinzufügen. $ Cm-> add_method (name => 'chk_pass' view => Klasse :: Meta :: PUBLIC); $ Cm-> build; } Verwenden Sie dann die Klasse: Verwendung MyApp :: Thingy; my $ Dingen = MyApp :: Thingy-> neu; drucken "ID:", $ thingy-> id, $ /; $ Thingy-> name ( 'Larry'); drucken "Name:", $ thingy-> name, $ /; $ Thingy-> Alter (42); drucken "Alter:", $ thingy-> Alter, $ /; Oder nutzen die Selbstbeobachtung API: Verwendung MyApp :: Thingy; my $ class = MyApp :: Thingy-> my_class; my $ Dingen; drucken "Prüfung Objekt der Klasse", $ class-> Paket, $ /; print "nConstructors: n"; für meine $ Ctor ($ Klassen-> Konstrukteurs) {print "o", $ ctor-> name, $ /; $ Dingen = $ ctor-> Anruf ($ Klassen-> Paket); } Druck "nAttributes: n"; für meinen $ attr ($ class-> Attribute) {print "o", $ attr-> namen "=>", $ attr-> get (Dingen $), $ /; if ($ attr-> authz> = Class :: Meta :: SET $ attr-> type eq 'string') {$ attr-> get ($ Dingen, 'Hey there!'); Druck "geändert:", $ attr-> get ($ Dingen), $ /; }} Druck "nMethods: n"; für meinen $ Meth ($ class-> Methoden) {print "o", $ meth-> name, $ /; $ Meth-> Aufruf ($ Dingen); } Class :: Meta bietet die Erstellung von Perl-Klassen mit dem Attribut Datentyp Validierung eine Schnittstelle für die Automatisierung. Es unterscheidet sich von anderen solchen Modulen, dass sie eine Selbstprüfung API enthält, die als eine einheitliche Schnittstelle für alle Class :: Meta-generierten Klassen verwendet werden können. In diesem Sinne ist es eine Implementierung des Fassade Design-Musters. Anforderungen: · Perl.
Klasse :: Meta. Zugehörige Software