Classe :: Visitante

Extensões de visitantes e iterador para classe :: modelo
Baixe Agora

Classe :: Visitante Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Ken MacLeod
  • Site do editor:
  • http://search.cpan.org/~kmacleod/

Classe :: Visitante Tag


Classe :: Visitante Descrição

Extensões de visitantes e iterador para classe :: modelo Classe :: Visitor é um módulo Perl que estende as funções do Getter / Setter fornecida por classe :: modelo para a classe, definindo métodos para usar os padrões de design de visitante e iterador. Todos os métodos de iterador são herdados de classe :: iter exceto iter.class é o nome da nova classe, super a superclasse desta classe (definirá @isa), e o modelo é como definido na classe :: modelo. $ OBJ. $ OBJ -Tamente> Retorna um novo iterador para este objeto. Se pai, matriz e índice não estiverem definidos, o novo iterador será tratado como objeto raiz. Exceto como herdado da classe :: iTer ou como definido abaixo, os métodos para $ ITER e $ OBJ funcionam o mesmo.Os métodos de aceitação causam um retorno de chamada para $ visitante com $ auto como o primeiro argumento mais o restante dos argumentos passados para aceitar. Isso é implementado como: Sub Aceitar {My $ self = Shift; Meu visitante $ = turno; $ Visitor-> Visit_Myclass ($ self, @_); } Children_accept As chamadas aceitam em cada objeto no campo da matriz denominada conteúdo. crianças_accept_arraymember faz o mesmo para arraymember.calling aceitar métodos em iteradores sempre chama de volta usando os iteradores. Chamando Aceitar em chamadas de não-iteradores de volta usando não-iteradores. Este último é significativamente mais rápido.push e pop agem como suas respectivas funções de array.as_string retorna os valores escalares concatenados do campo da matriz nomeados conteúdo, possivelmente modificado por $ context. ArrayMember_As_String faz o mesmo para ArrayMember.Visitor alonga escalares especialmente para crianças_accept e as_string. No caso de crianças_accept, o visitante criará um iterador na classe Classe :: Scalar :: iter com o escalar como o delegado.No caso de as_string, visitante usará a string a menos que $ context -> {cdata_maper} é definido, Nesse caso, retorna o resultado de chamar a sub-rotina CDATA_MAPPER com o escalar e os argumentos restantes. A implementação real é: {$ context -> {cdata_maper}} ($ escalar, @_); sinopse use classe :: visitante; visitor_class 'Classe', 'Super', {Modelo}; visitor_class 'classe', 'super', ; $ obj = class-> Novo (); $ iter = $ obj-> iter; $ iter = $ obj-> iter ($ pai, $ matriz, índice $); $ obj-> aceitar ($ visitor, ...); $ Obj-> Children_Accept ($ Visitor, ...); $ obj-> crianças_accept_arraymember ($ visitor, ...); $ obj-> push_arraymember ($ valor ); $ valor = $ obj-> pop_arraymember; $ obj-> as_string (); $ obj-> arraymember_as_string (); $ iter herda o seguinte da classe :: iter: $ iter-> pai; $ iter-> is_iter; $ iter-> raiz; $ iter-> rootpath; $ iter-> próximo; $ iter-> at_end; $ iter-> delegado; $ iter-> is_same ($ obj); Requisitos: · Perl.


Classe :: Visitante Software Relacionado