MooseX::AttributeTree

Software screenshot:
MooseX::AttributeTree
Podrobnosti Software:
Verze: 0.04
Datum uploadu: 14 Apr 15
Licence: Volný
Popularita: 9

Rating: nan/5 (Total Votes: 0)

Třídy mohou dědit atributy z jejich nadřazené třídy. Ale někdy budete chtít atribut, aby mohli zdědit jeho hodnotu z nadřazeného objektu. Například, že to, jak CSS styly práce v HTML.
MooseX :: AttributeTree je modul Perl, který umožňuje použít TreeInherit vlastnost každému atributu ve své třídě. & Nbsp; Tím se změní způsob, jakým způsob přístupový atributu děl. Při čtení hodnotu atributu, pokud žádná hodnota byla nastavena pro atribut v tomto objektu, bude přístupový vrátí hodnotu z nadřazeného objektu (která by mohla být sama o sobě zdědil).
Nadřízený objekt nemusí být stejného typu jako podřízený objekt, ale musí mít metodu se stejným názvem jako metoda přistupujícího atributu (pokud dodat fetch_method). (Metoda rodičů, může být metoda atribut přístupový, ale to nemusí být.) Pokud rodič nemá správný způsob, dostanete runtime chyba v případě, že dítě se snaží, aby to nazvat.
Ve výchozím nastavení, MooseX :: AttributeTree očekává, že si k rodičovskému objektu voláním nadřazené metody objektu. Můžete však použít jakékoliv metody načíst odkaz předáním příslušné parent_link do TreeInherit znaku:
& Nbsp; má předek => (
& Nbsp; je => 'rw ",
& Nbsp; isa => 'objekt',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; má hodnotu => (
& Nbsp; je => 'ro "
& Nbsp; vlastnosti => [TreeInherit => {parent_link => 'předka "}],
& Nbsp;);
Pokud metoda vrátí undef, pak dědictví zastaví a přístupový se bude chovat jako normální přístupový. (Normálně, parent_link bude jméno metodou atributu přístupový, ale to nemusí být.)
Někdy to není vhodný pro nadřazený objekt mít jinou metodu pro každý atribut, který podřízený objekt chtít zdědit. V takovém případě můžete dodat fetch_method na TreeInherit znak.
& Nbsp; má other_value => (
& Nbsp; je => 'ro "
& Nbsp; vlastnosti => [TreeInherit => {fetch_method => 'get_inherited'}],
& Nbsp;);
S fetch_method, bude zdědil hodnota pochází z
& Nbsp; $ self> mateřských> get_inherited ("other_value");
místo obvyklých
& Nbsp; $ self> mateřských> other_value ();
Pokud váš atribut má metodu predikát, hlásí, zda byl nastaven atribut na tento objekt. Predikát nemá žádné znalosti o hodnotu, která by mohla být zdědili od svých rodičů. To znamená, že $ objektově> has_value může vrátit false, přestože $ objektově> value vrátí hodnotu (zděděnou z mateřské).
Stejně tak je atribut jasněji metoda (pokud existuje), by zrušte atribut jen na tento objekt, a nikdy ovlivní nadřazeného objektu.
SYNOPSE
& Nbsp; balení MyClass;
& Nbsp; použití Moose;
& Nbsp; použití MooseX :: AttributeTree ();
& Nbsp; má rodiče => (
& Nbsp; je => 'rw ",
& Nbsp; isa => 'objekt',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; má hodnotu => (
& Nbsp; je => 'rw ",
& Nbsp; vlastnosti => [qw / TreeInherit /],
& Nbsp;)

Požadavky na :

  • Perl

Podobný software

IOR
IOR

2 Jun 15

picocom
picocom

3 Jun 15

Ostatní software developer Christopher J. Madsen

VBinDiff
VBinDiff

2 Jun 15

mktime
mktime

2 Jun 15

Komentáře k MooseX::AttributeTree

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!