Klasse :: Meta

Klasse :: Meta is een Perl-klasse automatisering, introspectie en gegevensvalidatie.
Download nu

Klasse :: Meta Rangschikking & Samenvatting

Advertentie

  • Rating:
  • 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

Downloaden