MooseX::AttributeTree

Software screenshot:
MooseX::AttributeTree
Dettagli del software:
Versione: 0.04
Data di caricamento: 14 Apr 15
Sviluppatore: Christopher J. Madsen
Licenza: Libero
Popolarità: 9

Rating: nan/5 (Total Votes: 0)

Le classi possono ereditare gli attributi dalle loro classi di appartenenza. Ma a volte si desidera un attributo di essere in grado di ereditare il suo valore da un oggetto padre. Ad esempio, ecco come funzionano gli stili CSS in HTML.
MooseX :: AttributeTree è un modulo Perl che consente di applicare il tratto TreeInherit di qualsiasi attributo della tua classe. & Nbsp; Questo cambia il modo in cui il metodo di accesso dell'attributo funziona. Durante la lettura il valore dell'attributo, se nessun valore è stato impostato per l'attributo in questo oggetto, la funzione di accesso restituirà il valore dall'oggetto padre (che potrebbe a sua volta essere ereditata).
L'oggetto padre non ha bisogno di essere dello stesso tipo, come l'oggetto figlio, ma deve avere un metodo con lo stesso nome di metodo di accesso dell'attributo (a meno che non si fornisce un fetch_method). (Metodo del genitore può essere un metodo di attributo di accesso, ma non deve essere.) Se il genitore non ha il metodo giusto, si otterrà un errore di runtime se il bambino cerca di chiamarlo.
Per impostazione predefinita, MooseX :: AttributeTree aspetta di ottenere l'oggetto principale chiamando il metodo principale dell'oggetto. Tuttavia, è possibile utilizzare qualsiasi metodo per recuperare il collegamento passando il parent_link appropriato per il tratto TreeInherit:
& Nbsp; ha antenato => (
& Nbsp; è => 'rw',
& Nbsp; isa => 'Oggetto',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; ha un valore => (
& Nbsp; è => 'ro',
& Nbsp; tratti => [TreeInherit => {parent_link => 'antenato'}],
& Nbsp;);
Se il metodo restituisce undef, quindi l'ereditarietà si interrompe e la funzione di accesso si comporterà come una funzione di accesso normale. (Normalmente, parent_link sarà il nome di un metodo di accesso di attributo, ma non deve essere.)
A volte non è conveniente per l'oggetto padre di avere un metodo separato per ogni attributo che un oggetto figlio potrebbe desiderare di ereditare. In questo caso, è possibile fornire una fetch_method per il tratto TreeInherit.
& Nbsp; ha other_value => (
& Nbsp; è => 'ro',
& Nbsp; tratti => [TreeInherit => {fetch_method => 'get_inherited'}],
& Nbsp;);
Con fetch_method, il valore ereditato verrà da
& Nbsp; $ auto> capostipite> get_inherited ('other_value');
invece del solito
& Nbsp; $ auto> capostipite> other_value ();
Se l'attributo ha un metodo predicato, si segnala se l'attributo è stato impostato su tale oggetto. Il predicato non è a conoscenza di qualsiasi valore che potrebbe essere ereditato da un genitore. Ciò significa che $ object-> has_value potrebbe restituire false anche se $ object-> valore restituirà un valore (ereditato dal padre).
Allo stesso modo, più chiaro il metodo dell'attributo (se presente) potrebbe cancellare l'attributo di sola su questo oggetto, e non avrebbe mai influenzare un oggetto padre.
SINOSSI
& Nbsp; pacchetto MyClass;
& Nbsp; utilizzare Moose;
& Nbsp; utilizzare MooseX :: AttributeTree ();
& Nbsp; ha parent => (
& Nbsp; è => 'rw',
& Nbsp; isa => 'Oggetto',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; ha un valore => (
& Nbsp; è => 'rw',
& Nbsp; tratti => [qw / TreeInherit /],
& Nbsp;);

Requisiti :

  • Perl

Programmi simili

Web-bench
Web-bench

3 Jun 15

UMark
UMark

3 Jun 15

Cbench
Cbench

3 Jun 15

Maguma Workbench
Maguma Workbench

3 Jun 15

Altri software di sviluppo Christopher J. Madsen

VBinDiff
VBinDiff

2 Jun 15

mktime
mktime

2 Jun 15

Commenti a MooseX::AttributeTree

I commenti non trovato
Aggiungi commento
Accendere le immagini!