Clase :: Meta

Clase :: Meta es una automatización de clase Perl, introspección y validación de datos.
Descargar ahora

Clase :: Meta Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • Perl Artistic License
  • Precio:
  • FREE
  • Nombre del editor:
  • David Wheeler
  • Sitio web del editor:
  • http://search.cpan.org/~dwheeler/

Clase :: Meta Etiquetas


Clase :: Meta Descripción

Clase :: Meta es un Perl automatización de la clase, la introspección y la validación de datos. Clase :: Meta es un Perl automatización de la clase, la introspección, y los datos validation.SYNOPSISGenerate una clase: MiApl paquete :: Thingy; usar estricto; Usa la clase :: meta; Clase uso :: Meta :: Tipos :: string; utilizar Class :: Meta :: :: Tipos numérico; Comience {# Crear una clase :: Objeto meta para esta clase. My $ cm = clase :: meta-> nuevo (clave => 'thingy'); # Añadir un constructor. $ Cm-> add_constructor (nombre => 'nuevo', crear => 1,); # Añadir un par de atributos con los métodos generados. $ Cm-> add_attribute (nombre => 'uuid', authz => Clase :: :: LEER Meta, tipo => 'cadena', requerido => 1, por defecto => {sub datos :: UUID-> Nuevo-> create_str},); $ Cm-> add_attribute (nombre => 'nombre', es => 'cadena', requerido => 1, por defecto => undef,); $ Cm-> add_attribute (nombre => 'edad', es => 'entero', por defecto => undef,); # Añadir un método personalizado. $ Cm-> add_method (nombre => 'chk_pass', vista => Clase :: :: Meta PÚBLICO,); $ cm-> construir; } A continuación, utilice la clase: MiApl uso :: Thingy; mi cosita $ = MyApp :: Thingy-> nueva; imprimir "ID:", $ thingy-> Identificación, $ /; $ Thingy-> nombre ( 'Larry'); imprimir "Nombre:", $ thingy-> nombre, $ /; $ Thingy-> edad (42); imprimir "Edad:", $ thingy-> edad, $ /; O hacer uso de la API de introspección: el uso MiApl :: Thingy; mi $ class = MyApp :: Thingy-> my_class; mi cosita $; imprimir "Examinar objeto de clase", de clase $> paquete, $ /; imprimir "nConstructors: n"; para mi $ ctor ($ de clase> constructores) {print "o", $ ctor-> nombre, $ /; $ = $ Cosita ctor-> llamada ($ de clase> paquete); } Print "nAttributes: n"; para mi $ attr ($ de clase> atributos) {print "o", $ attr-> nombre, "=>", $ attr-> get ($ cosita), $ /; if ($ attr-> authz> = Clase :: Meta :: SET $ attr-> Tipo eq 'cadena') {$ attr-> get ($ cosita, 'Hola!'); imprimir "cambiado a:", $ attr-> get ($ cosita), $ /; }} Imprimir "nMethods: n"; para mi $ metanfetamina ($ Class-> métodos) {print "o", $ met> nombre, $ /; $ Met> llamada ($ cosita); } Clase :: Meta proporciona una interfaz para automatizar la creación de clases de Perl con la validación de atributo de tipo de datos. Se diferencia de otros tales módulos en que incluye una API introspección que puede ser utilizado como una interfaz unificada para todas las clases generadas-Meta Class ::. En este sentido, es una implementación del patrón de diseño "fachada". Requisitos: · Perl


Clase :: Meta Software relacionado