Clase :: Visitante

Extensiones de visitantes e Iterator a clase :: Plantilla
Descargar ahora

Clase :: Visitante Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • Perl Artistic License
  • Precio:
  • FREE
  • Nombre del editor:
  • Ken MacLeod
  • Sitio web del editor:
  • http://search.cpan.org/~kmacleod/

Clase :: Visitante Etiquetas


Clase :: Visitante Descripción

Extensiones de visitantes e Iterator a Clase :: Plantilla Clase :: Visitor es un módulo PERL que extiende las funciones de Getter / Setter proporcionadas por clase :: Plantilla para Clase mediante la definición de métodos para usar los patrones de diseño de visitantes e iteradores. Todos los métodos del iterador se heredan de Class :: ITER, excepto ITER.CLASS, es el nombre de la nueva clase, super la superclase de esta clase (definirá @isa) y la plantilla es la definida en la clase :: plantilla. $ Obj -Etitro> Devuelve un nuevo iterador para este objeto. Si no se definen los padres, la matriz y el índice, entonces el nuevo iterador se trata como objeto de raíz. Excepto como heredado de la clase :: ITER o como se define a continuación, los métodos para $ ITER y $ OBJ trabajan igual. Los métodos de aceptación hacen que una devolución de llamada a $ visitantes con $ yo como el primer argumento más el resto de los argumentos pasados ​​a aceptar. Esto se implementa como: Sub Acepte {My $ Self = Shift; mi visitante $ = cambio; $ visitante-> visit_myclass ($ self, @_); } Kids_Accept Llamadas Aceptar en cada objeto en el campo Array llamado Contenido. NIÑOS_ACCept_ArrayMember hace lo mismo para los métodos de aceptación de recuerdos de ArrayMember.calling. Las llamadas aceptan sobre los no iteradores, vuelva a controlar los no iteradores. Este último es significativamente más rápido.push y POP actúan como sus respectivas funciones de matriz. El_string devuelve los valores escalares concatenados del campo de matriz denominados contenidos, posiblemente modificados por $ contexto. ArrayMember_As_String hace lo mismo para ArrayMember.Visitor maneja escalares especialmente para niños_accept y as_string. En el caso de NIÑOS_ACCEPT, el visitante creará un iterador en la clase Clase :: Scalar :: Iter con el escalar como delegado. En el caso de AS_STRING, el visitante usará la cadena a menos que $ contexto -> {cdata_mapper} está definido, En cuyo caso devuelve el resultado de llamar a la subrutina CDATA_MAPPER con los argumentos escalares y restantes. La implementación real es: {$ contexto -> {cdata_mapper}} ($ scalar, @_); Sinopsis Use Clase :: Visitante; Visitor_Class 'Class', 'Super', {plantilla}; Visitor_Class 'Class', 'Super', ; $ obj = clase-> nuevo (); $ iter = $ obj-> iter; $ iter = $ obj-> iter ($ padre, $ matriz, índice $); $ obj-> Aceptar ($ visitante, ...); $ obj-> infantil_accept ($ visitante, ...); $ obj-> children_accept_arraymember ($ visitante, ...); $ obj-> push_arraymember ($ valor ); $ valor = $ obj-> pop_arraymember; $ obj-> as_string (]); $ obj-> arraymember_as_string (]); $ ITER hereda lo siguiente desde clase :: iter: $ iter-> padre; $ iter-> is_iter; $ iter-> raíz; $ iter-> rootpath; $ iter-> Siguiente; $ iter-> at_end; $ iter-> delegado; $ iter-> is_same ($ obj); Requisitos: · Perl


Clase :: Visitante Software relacionado