Klasse :: MetaKlasse :: Meta is een Perl-klasse automatisering, introspectie en gegevensvalidatie. | |
Download nu |
Klasse :: Meta Rangschikking & Samenvatting
Advertentie
- Vergunning:
- Perl Artistic License
- Prijs:
- FREE
- Naam uitgever:
- David Wheeler
- Uitgever website:
- http://search.cpan.org/~dwheeler/
Klasse :: Meta Tags
Klasse :: Meta Beschrijving
Class :: Meta is een Perl klasse automatisering, introspectie, en validatie van gegevens. Class :: Meta is een Perl klasse automatisering, introspectie, en data validation.SYNOPSISGenerate een klasse: package MyApp :: Thingy; strikt gebruik; Gebruik Class :: Meta; gebruik Class :: Meta :: Typen :: String; Gebruik Class :: Meta :: Typen :: Numerieke; BEGIN {# Maak een klasse :: Meta object voor deze klasse. mijn $ cm = Class :: Meta-> new (key => 'dingetje'); # Voeg een constructeur. $ Cm> add_constructor (name => 'nieuw', creëren => 1); # Voeg een paar attributen met gegenereerde methoden. $ Cm> add_attribute (name => 'UUID', authz => Class :: Meta :: LEES, type => 'string', de gewenste => 1, default => sub {Data :: UUID-> Nieuw-> create_str}); $ Cm> add_attribute (name => 'naam', is => 'string', de gewenste => 1, default => undef,); $ Cm> add_attribute (name => 'leeftijd', is => 'integer', default => undef,); # Voeg een aangepaste methode. $ Cm> add_method (name => 'chk_pass', view => Class :: Meta :: PUBLIC,); $ Cm> build; } Maak dan gebruik van de klas: gebruik MyApp :: Thingy; mijn $ dingetje = MyApp :: Thingy-> new; afdrukken "ID:", $ thingy-> id, $ /; $ Thingy-> naam ( 'Larry'); afdrukken "Naam:", $ thingy-> naam, $ /; $ Thingy-> leeftijd (42); afdrukken "Leeftijd:", $ thingy-> leeftijd, $ /; Of gebruik maken van de introspectie API: gebruik MyApp :: Thingy; mijn $ class = MyApp :: Thingy-> my_class; mijn $ dingetje; afdrukken "Het onderzoeken object van de klasse", $ klas-> pakket, $ /; afdrukken "nConstructors: n"; voor mijn $ ctor ($ klasse-> constructeurs) {print "o", $ ctor-> naam, $ /; $ Dingetje = $ ctor-> call ($ klasse-> pakket); } Te drukken "nAttributes: n"; voor mijn $ attr ($ klasse-> attributen) {print "o", $ attr-> naam, "=>", $ attr-> get ($ dingetje), $ /; if ($ attr-> authz> = Class :: Meta :: SET $ attr-> EQ-type 'string') {$ attr-> get ($ dingetje, 'hey there!'); afdrukken "gewijzigd in:", $ attr-> get ($ dingetje), $ /; }} Te drukken "nMethods: n"; voor mijn $ meth ($ klasse-> methoden) {print "o", $ meth-> naam, $ /; $ Me-> call ($ dingetje); } Class :: Meta biedt een interface voor het automatiseren van de creatie van Perl klassen met attribuut datatype validatie. Het verschilt van andere soortgelijke modules doordat deze een introspectie API die kan worden gebruikt als een uniforme interface voor alle klasse :: Meta-gegenereerde klassen. In die zin is het een uitvoering van de "Facade" design patroon. Vereisten: · Perl
Klasse :: Meta Gerelateerde software
Sux
Sux is een reeks krachtige hulpprogramma's van basis- en geavanceerde beknopte gegevensstructuren in C ++ en Java. ...
249