Classe :: Meta.

Classe :: Meta é uma automação de classe perl, introspecção e validação de dados.
Baixe Agora

Classe :: Meta. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • David Wheeler
  • Site do editor:
  • http://search.cpan.org/~dwheeler/

Classe :: Meta. Tag


Classe :: Meta. Descrição

Classe :: Meta é uma automação, introspecção e validação de dados Perl. Classe :: Meta é uma automação, introspecção e validação de dados Perl.Synopsisgenerar uma classe: pacote myapp :: thingy; Use rigoroso; Use Classe :: Meta; Use Classe :: Meta :: Tipos :: String; Use Classe :: Meta :: Tipos :: numérico; Comece {# Crie um objeto Classe :: Meta para esta aula. Minha $ cm = Class :: Meta-> Novo (Key => 'Thingy'); # Adicione um construtor. $ cm-> add_constructor (nome => 'novo', criar => 1,); # Adicione um par de atributos com métodos gerados. $ cm-> add_attribute (nome => 'uuid', authz => class :: meta :: ler, digite => 'string', obrigatório => 1, default => sub {dados :: uuid-> new-> create_str},); $ cm-> add_attribute (nome => 'nome', é => 'string', obrigatório => 1, padrão => indef,); $ cm-> add_attribute (nome => 'envelhecimento', é => 'integer', padrão => indef,); # Adicione um método personalizado. $ cm-> add_method (nome => 'chk_pass', View => Class :: Meta :: Público,); $ cm-> construir; } Então use a classe: use myapp :: thingy; meu $ thingy = myapp :: thingy-> novo; Imprimir "ID:", $ thingy-> id, $ /; $ thingy-> Nome ('Larry'); Imprimir "Nome:", $ thingy-> Nome, $ /; $ thingy-> idade (42); Imprimir "Idade:", $ thingy-> idade, $ /; ou fazer uso da API da introspecção: use myapp :: thingy; Meu $ Class = MyApp :: Thingy-> my_class; meu $ thingy; Imprimir "Examinando Object of Class", $ Class-> Pacote, $ /; Imprimir "nconstruturadores: n"; Para o meu $ ctor ($ class-> construtores) {imprimir "o", $ ctor-> nome, $ /; $ thingy = $ ctor-> ligue ($ class-> pacote); } Imprimir "Nattributes: n"; Para o meu $ Attr ($ Class-> Atributos) {Imprimir "O", $ attr-> nome, "=>", $ attr-> get ($ thingy), $ /; if ($ attr-> authz> = class :: meta :: set $ attr-> tipo eq 'string') {$ attr-> get ($ thingy, 'hey lá!'); Imprimir "alterado para:", $ attr-> get ($ thingy), $ /; }} Imprimir "nmethods: n"; Para minhas metanximas ($ class-> métodos) {Imprimir "O", $ METH-> Nome, $ /; $ MAST-> Ligue ($ thingy); } Classe :: Meta fornece uma interface para automatizar a criação de classes Perl com validação de tipo de dados de atributo. Difere de outros módulos, em que inclui uma API de introspecção que pode ser usada como uma interface unificada para todas as classes de classe :: Meta-geradas. Nesse sentido, é uma implementação do padrão de design "fachada". Requisitos: · Perl.


Classe :: Meta. Software Relacionado