MooseX::AttributeTree

Skjermbilde programvare:
MooseX::AttributeTree
Prog.varedetaljer:
Versjon: 0.04
Last opp dato: 14 Apr 15
Lisens: Gratis
Popularitet: 9

Rating: nan/5 (Total Votes: 0)

Klasser kan arve attributter fra sine foreldre klasser. Men noen ganger du ønsker en egenskap å være i stand til å arve sin verdi fra en forelder objekt. For eksempel, det er hvordan CSS stiler fungerer i HTML.
MooseX :: AttributeTree er et Perl-modul som lar deg bruke TreeInherit trekk til eventuelle attributt i klassen. & Nbsp; Dette endrer måten attributtet accessor metoden fungerer. Når du leser attributtet verdi, hvis ingen verdi er angitt for attributtet i dette objektet, vil accessor returnere verdien fra det overordnede objektet (som kan selv være arvelig).
Den overordnede objektet trenger ikke å være av samme type som barnet objekt, men det må ha en metode med samme navn som attributtet tilbehør metode (med mindre du leverer en fetch_method). (The foreldrenes metoden kan være et attributt accessor metode, men det trenger ikke å være.) Dersom foreldrene ikke har den rette metoden, vil du få en runtime error hvis barnet forsøker å kalle det.
Som standard forventer MooseX :: AttributeTree å få det overordnede objektet ved å kalle objektets overordnede metoden. Du kan imidlertid bruke noen metode for å hente koblingen ved å sende den aktuelle parent_link til TreeInherit egenskap:
& Nbsp; har stamfar => (
& Nbsp; er => 'rw',
& Nbsp; isa => 'Objekt',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; har verdi => (
& Nbsp; er => 'ro',
& Nbsp; trekk => [TreeInherit => {parent_link => 'stamfar'}],
& Nbsp;);
Hvis metoden returnerer udef, deretter arv stopper og tilbehør vil oppføre seg som en vanlig tilbehør. (Normalt vil parent_link være navnet på et attributt accessor metode, men det trenger ikke å være.)
Noen ganger er det ikke praktisk for den overordnede objektet skal ha en egen metode for hvert attributt som et barn objekt kanskje vil arve. I så fall, kan du levere en fetch_method til TreeInherit egenskap.
& Nbsp; har other_value => (
& Nbsp; er => 'ro',
& Nbsp; trekk => [TreeInherit => {fetch_method => 'get_inherited'}],
& Nbsp;);
Med fetch_method vil arvet verdi kommer fra
& Nbsp; $ selv> foreldre-> get_inherited ('other_value');
i stedet for den vanlige
& Nbsp; $ selv> foreldre-> other_value ();
Hvis attributt har et predikat metode, rapporteres det om attributtet er satt på dette objektet. Predikatet har ikke kjennskap til noen verdi som kan være arvet fra en forelder. Dette betyr at $ object-> kan has_value return false selv om $ object-> verdi vil returnere en verdi (arvet fra foreldre).
Likeledes ville attributtet er tydeligere metode (hvis noen) fjerne attributtet bare på dette objektet, og ville aldri påvirke en ordnede objektet.
SYNOPSIS
& Nbsp; pakke MyClass;
& Nbsp; bruke Moose;
& Nbsp; bruke MooseX :: AttributeTree ();
& Nbsp; har foreldre => (
& Nbsp; er => 'rw',
& Nbsp; isa => 'Objekt',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; har verdi => (
& Nbsp; er => 'rw',
& Nbsp; trekk => [qw / TreeInherit /],
& Nbsp;);

Krav :

  • Perl

Lignende programvare

IOzone
IOzone

2 Jun 15

Bootchart
Bootchart

3 Jun 15

Benchmarker
Benchmarker

11 May 15

HPC Toolkit
HPC Toolkit

20 Feb 15

Annen programvare fra utvikleren Christopher J. Madsen

VBinDiff
VBinDiff

2 Jun 15

mktime
mktime

2 Jun 15

Kommentarer til MooseX::AttributeTree

Kommentarer ikke funnet
Legg til kommentar
Slå på bilder!