MooseX::AttributeTree

Logiciel capture d'écran:
MooseX::AttributeTree
Détails logiciels:
Version: 0.04
Date de transfert: 14 Apr 15
Développeur: Christopher J. Madsen
Licence: Gratuit
Popularité: 9

Rating: nan/5 (Total Votes: 0)

Les classes peuvent hériter des attributs de leurs classes parentes. Mais parfois vous voulez un attribut de pouvoir hériter sa valeur à partir d'un objet parent. Par exemple, ce est ainsi que les styles CSS travaillent en HTML.
MooseX :: AttributeTree est un module Perl qui permet d'appliquer le trait de TreeInherit d'un attribut dans votre classe & nbsp;. Cela change la façon dont la méthode d'accès de l'attribut fonctionne. Lors de la lecture de la valeur de l'attribut, si aucune valeur n'a été fixée pour l'attribut dans cet objet, l'accesseur sera de retour la valeur de l'objet parent (qui pourrait être lui-même hérité).
L'objet parent n'a pas besoin d'être du même type que l'objet enfant, mais il doit avoir une méthode avec le même nom que la méthode d'accès de l'attribut (sauf si vous fournissez un fetch_method). (La méthode de la mère peut être une méthode d'attribut accesseur, mais il n'a pas à être.) Si le parent n'a pas la bonne méthode, vous obtiendrez une erreur d'exécution si l'enfant tente de l'appeler.
Par défaut, MooseX :: AttributeTree se attend à obtenir l'objet parent en appelant la méthode de parent de l'objet. Cependant, vous pouvez utiliser ne importe quelle méthode pour récupérer le lien en passant le parent_link appropriée au trait TreeInherit:
& Nbsp; a ancêtre => (
& Nbsp; est => «rw»,
& Nbsp; isa => 'Objet',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; a une valeur => (
& Nbsp; est => «ro»,
& Nbsp; traits => [TreeInherit => {parent_link => 'ancêtre'}],
& Nbsp;);
Si la méthode renvoie undef, alors l'héritage se arrête et l'accesseur se comportera comme un accesseur normale. (Normalement, parent_link sera le nom d'une méthode d'attribut accesseur, mais il n'a pas à être.)
Parfois, il ne est pas pratique pour l'objet parent d'avoir une méthode distincte pour chaque attribut d'un objet enfant pourrait vouloir hériter. Dans ce cas, vous pouvez fournir un fetch_method au trait TreeInherit.
& Nbsp; a autre_valeur => (
& Nbsp; est => «ro»,
& Nbsp; traits => [TreeInherit => {fetch_method => 'get_inherited'}],
& Nbsp;);
Avec fetch_method, la valeur héritée proviendra
& Nbsp; $ self-> parent-> get_inherited ('autre_valeur');
au lieu de l'habituel
& Nbsp; $ self-> parent-> autre_valeur ();
Si votre attribut a une méthode de prédicat, il indique si l'attribut a été mis sur cet objet. Le prédicat n'a pas connaissance d'une quelconque valeur qui pourrait être héritée d'un parent. Cela signifie que $ object-> has_value peut retourner false même si $ object-> valeur serait retourner une valeur (héritée de la mère).
De même, la méthode plus claire de l'attribut (le cas échéant) serait effacer l'attribut uniquement sur cet objet, et ne aurait jamais toucher un objet parent.
SYNOPSIS
& Nbsp; package MyClass;
& Nbsp; utiliser Moose;
& Nbsp; utiliser MooseX :: AttributeTree ();
& Nbsp; a parent => (
& Nbsp; est => «rw»,
& Nbsp; isa => 'Objet',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; a une valeur => (
& Nbsp; est => «rw»,
& Nbsp; traits => [qw / TreeInherit /],
& Nbsp;);

Exigences :

  • Perl

Logiciel similaire

Postal
Postal

14 Apr 15

RUBiS
RUBiS

3 Jun 15

Web-bench
Web-bench

3 Jun 15

dkftpbench
dkftpbench

2 Jun 15

D'autres logiciels de développeur Christopher J. Madsen

mktime
mktime

2 Jun 15

VBinDiff
VBinDiff

2 Jun 15

Commentaires à MooseX::AttributeTree

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!