Classe :: VisiteurExtensions de visiteur et d'itérateur à la classe :: Modèle | |
Télécharger maintenant |
Classe :: Visiteur Classement & Résumé
Publicité
- 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