Classe :: Visiteur

Extensions de visiteur et d'itérateur à la classe :: Modèle
Télécharger maintenant

Classe :: Visiteur Classement & Résumé

Publicité

  • Rating:
  • Licence:
  • Perl Artistic License
  • Prix:
  • FREE
  • Nom de l'éditeur:
  • Ken MacLeod
  • Site Internet de l'éditeur:
  • http://search.cpan.org/~kmacleod/

Classe :: Visiteur Mots clés


Classe :: Visiteur La description

Extensions de visiteur et d'itérateur à la classe :: Modèle Classe :: Visiteur est un module Perl qui étend les fonctions Getter / Setter fournies par classe :: Modèle de classe en définissant des méthodes d'utilisation des motifs de conception des visiteurs et des itérateurs. Toutes les méthodes d'itérateur sont héritées de la classe :: ITER Sauf iter.class est le nom de la nouvelle classe, super la superclasse de cette classe (définira @isa) et le modèle est tel que défini dans la classe :: Modèle. $ Obj -iter> renvoie un nouvel itérateur pour cet objet. Si le parent, la matrice et l'index ne sont pas définis, le nouvel itérateur est traité comme un objet racine. Sauf comme hérité de la classe :: ITER ou tel que défini ci-dessous, les méthodes de $ ITER et $ OBJ fonctionnent de la même manière. Les méthodes acceptées provoquent un rappel auprès de Soi $ en tant que premier argument ainsi que le reste des arguments passés à accepter. Ceci est implémenté comme: Sub Accepter {My $ Self = Shift; mon $ visiteur = shift; $ visitor-> visit_myclass ($ moi, @_); } Enfants_accept Appels Acceptez sur chaque objet dans le champ Array nommé Contenu. Enfants_accept_arrayMemberMember fait la même chose pour ArrayMember.Calling Accepter des méthodes sur les itérateurs appelle toujours à l'aide d'itérateurs. Appeler Accepter sur les non-itérateurs appelle à l'aide de non-itérateurs. Ce dernier est significativement plus rapide.Plush et Pop agissent comme leurs fonctions de tableau respective.As_string renvoie les valeurs scalaires concaténées du champ de réseau nommé, éventuellement modifié par $ contexte. ArrayMember_AS_String fait la même chose pour ArrayMember.Visitor gère des scalaires spécialement pour les enfants_accept et as_string. Dans le cas de Children_accept, Visitor créera un itérateur dans la classe de classe :: scalaire :: iter avec le scalaire comme délégué.Le cas d'AS_String, visiteur utilisera la chaîne sauf si $ contexte -> {CDATA_MAPPER} est défini, Dans ce cas, il renvoie le résultat de l'appelant le sous-programme CDATA_MAPPER avec le scalaire et les arguments restants. La mise en uvre réelle est la suivante: {$ Contexte -> {CDATA_MAPPER}} ($ scalar, @_); Synopsis Utilisez la classe :: Visiteur; visitor_class 'classe', 'super', {modèle}; visitor_class 'classe', 'super', ; $ obj = classe-> nouvelle (); $ iter = $ obj-> iter; $ iter = $ obj-> iter ($ parent, $ tury, $ indice); $ obj-> accepter ($ visiteur, ...); $ obj-> enfants_accept ($ visiteur, ...); $ obj-> enfants_accept_arraymember ($ visiteur, ...); $ obj-> push_arraymember ($ valeur ); $ valeur = $ obj-> pop_arraymember; $ obj-> as_string (]]); $ obj-> arraymember_as_string (]]); $ ITER hérite les éléments suivants de la classe :: iter: $ iter-> parent; $ iter-> is_iter; $ iter-> root; $ iter-> rootpath; $ iter-> suivant; $ iter-> at_end; $ iter-> délégué; $ iter-> is_same ($ obj); Exigences: · Perl


Classe :: Visiteur Logiciels associés

Macramé

Cadre macro récursif de temps de filtre fournissant la fonctionnalité empêchant Perl d'être "un LISP" ...

1,233

Télécharger