| 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
- Licencia:
- Perl Artistic License
- 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