Klasse :: Meta :: Express

Klasse :: Meta :: Express is een Perl-module voor beknopte, expressieve creatie van klasse :: Meta-klassen.
Download nu

Klasse :: Meta :: Express Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • David Wheeler
  • Uitgever website:
  • http://search.cpan.org/~dwheeler/

Klasse :: Meta :: Express Tags


Klasse :: Meta :: Express Beschrijving

Klasse :: Meta :: Express is een Perl-module voor beknopte, expressieve creatie van klasse :: Meta-klassen. Klasse :: Meta :: Express is een Perl-module voor beknopte, expressieve creatie van klasse :: Meta Classes.Synopsis Package My :: Contact; Gebruik Klasse :: Meta :: Express; klasse {meta contact => (standaard_type => 'string'); heeft 'naam'; heeft contact => (vereist => 1); } Deze module biedt een interface om beknopt maar expressief klassen te creëren met klasse :: Meta. Hoewel ik natuurlijk dol is op Klasse :: Meta, ben ik nog nooit overdreven blij met zijn interface voor het maken van klassen: pakket mijn :: dingy; gebruik klasse :: meta; Begin {# Maak een klasse :: Meta-object voor deze klasse. mijn $ cm = klasse :: meta-> nieuw (sleutel => 'thingy'); # Voeg een constructor toe. $ cm-> add_constructor (naam => 'nieuw'); # Voeg een paar attributen toe met gegenereerde accessors. $ cm-> add_attribute (naam => 'ID', is => 'integer', vereist => 1,); $ cm-> add_attribute (naam => 'naam', is => 'string', vereist => 1,); $ cm-> add_attribute (naam => 'leeftijd', is => 'integer',); # Voeg een aangepaste methode toe. $ cm-> add_method (naam => 'chk_pass', code => sub {return 'code'},); $ cm-> bouwen; } Dit voorbeeld is relatief eenvoudig; Het kan veel meer uitgebreider krijgen. Maar zelfs nog, alle methode-oproepen waren irritant. Ik bedoel, wie dacht om een objectgeoriënteerde interface te gebruiken voor het verklaren van een klasse? (Oh ja: dat deed ik.) Ik was niet de enige om een meer declaratieve interface te wensen; Curtis Poe, met mijn zegen, gecreëerde klasse :: Meta :: verklaren, die deze syntaxis zou gebruiken om dezelfde klasse te maken: pakket mijn :: dingy; Gebruik klasse :: Meta :: declareren ': alles'; Klasse :: Meta :: declareren-> Nieuw (# Maak een klasse :: Meta-object voor deze klasse. Meta => , # Voeg een constructor toe. Constructors => , # Voeg een paar attributen toe met gegenereerde accessors. Attributen => , # Voeg een aangepaste methode toe. Methoden => ); deze aanpak is het voordeel van zijn Een beetje beknopt, en het is declaratief, maar ik vind alle irritante inspringende niveaus; Het is moeilijk voor mij om erachter te komen waar ik ben, vooral als ik veel attributen moet definiëren. En tot slot, alles is een string met deze syntaxis, met uitzondering van die lelijke read-only scalars zoals $ TYPE_INTEGER. Dus ik kan niet gemakkelijk zeggen waar één attribuut eindigt en de volgende begint. Bleh. Vereisten: · Perl


Klasse :: Meta :: Express Gerelateerde software

Sux

Sux is een reeks krachtige hulpprogramma's van basis- en geavanceerde beknopte gegevensstructuren in C ++ en Java. ...

249

Downloaden