MooseX::AttributeTree

Screenshot der Software:
MooseX::AttributeTree
Softwarebeschreibung:
Version: 0.04
Upload-Datum: 14 Apr 15
Lizenz: Frei
Popularität: 9

Rating: nan/5 (Total Votes: 0)

Der Unterricht kann Attribute von ihren übergeordneten Klassen erben. Aber manchmal möchten Sie ein Attribut in der Lage, seinen Wert aus einem übergeordneten Objekt erben. Zum Beispiel ist, wie CSS-Stile zu arbeiten in HTML.
MooseX :: AttributeTree ist ein Perl-Modul, mit dem Sie die TreeInherit Eigenschaft zu jedem Attribut in der Klasse anwenden können. & Nbsp; Das verändert die Art und Weise Zugriffsmethode des Attributs funktioniert. Beim Lesen der Wert des Attributs, wenn kein Wert für das Attribut in diesem Objekt festgelegt wurde, die Zugriffs den Wert vom übergeordneten Objekt (die selbst vererbt werden könnte) zurückzukehren.
Das übergeordnete Objekt muss nicht vom gleichen Typ wie das untergeordnete Objekt sein, aber es muss eine Methode mit dem gleichen Namen wie Zugriffsmethode des Attributs haben (es sei denn Sie eine fetch_method liefern). (Die Methode des Vaters kann ein Attribut Zugriffsmethode sein, aber es muss nicht sein.) Wenn der Elternteil nicht die richtige Methode zu haben, werden Sie einen Laufzeitfehler, wenn das Kind versucht, sie anzurufen.
Standardmäßig erwartet MooseX :: AttributeTree auf das übergeordnete Objekt, indem Sie übergeordnete Methode des Objekts zu erhalten. Sie können jedoch eine beliebige Methode verwenden, um die Verbindung durch Angabe eines entsprechenden parent_link auf die TreeInherit Eigenschaft abrufen:
& Nbsp; hat Vorfahren => (
& Nbsp; ist => 'rw',
& Nbsp; isa => 'Objekt',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; hat einen Wert => (
& Nbsp; ist => 'ro',
& Nbsp; Züge => [TreeInherit => {parent_link => 'Vorfahren'}],
& Nbsp;);
Wenn die Methode undef, stoppt Vererbung und der Zugriffsmechanismus wird wie ein normaler Zugriffs verhalten. (Normalerweise wird parent_link der Name eines Attributs Zugriffsmethode sein, aber es muss nicht so sein.)
Manchmal ist es nicht bequem für das übergeordnete Objekt, ein separates Verfahren haben für jedes Attribut, das ein untergeordnetes Objekt möchten Sie vielleicht erben. In diesem Fall können Sie einen fetch_method auf die TreeInherit Merkmal liefern.
& Nbsp; hat other_value => (
& Nbsp; ist => 'ro',
& Nbsp; Züge => [TreeInherit => {fetch_method => 'get_inherited "}],
& Nbsp;);
Mit fetch_method wird die geerbten Wert her
& Nbsp; $ self-> Eltern-> get_inherited ('other_value');
statt der üblichen
& Nbsp; $ self-> Eltern-> other_value ();
Wenn Ihr Attribut hat ein Prädikat Verfahren, berichtet er, ob das Attribut für das Objekt festgelegt. Das Prädikat hat keine Kenntnis von irgendeinem Wert, der von einem Elternteil vererbt werden könnten. Das bedeutet, dass $ objekt-> kann has_value false zurück, obwohl $ objekt-> Wert würde einen Wert (aus dem Elternteil vererbt) zurückzukehren.
Ebenso würde klarer Verfahren des Attributs (wenn vorhanden) das Attribut nur für dieses Objekt zu löschen, und würde nie beeinflussen ein übergeordnetes Objekt.
ÜBERSICHT
& Nbsp; Paket MyClass;
& Nbsp; verwenden Moose;
& Nbsp; verwenden MooseX :: AttributeTree ();
& Nbsp; hat Eltern => (
& Nbsp; ist => 'rw',
& Nbsp; isa => 'Objekt',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; hat einen Wert => (
& Nbsp; ist => 'rw',
& Nbsp; Züge => [qw / TreeInherit /],
& Nbsp;);

Anforderungen :

  • Perl

Ähnliche Software

Iometer
Iometer

2 Jun 15

Valley Benchmark
Valley Benchmark

20 Feb 15

Benchmarker
Benchmarker

11 May 15

Web-bench
Web-bench

3 Jun 15

Andere Software von Entwickler Christopher J. Madsen

VBinDiff
VBinDiff

2 Jun 15

mktime
mktime

2 Jun 15

Kommentare zu MooseX::AttributeTree

Kommentare nicht gefunden
Kommentar hinzufügen
Schalten Sie auf die Bilder!