MooseX::AttributeTree

Скріншот програми:
MooseX::AttributeTree
Дані програми:
Версія: 0.04
Дата завантаження: 14 Apr 15
Розробник: Christopher J. Madsen
Ліцензія: Безкоштовно
Популярність: 9

Rating: nan/5 (Total Votes: 0)

Класи можуть успадковувати атрибути від їх батьківських класів. Але іноді хочеться атрибут, щоб мати можливість успадковує своє значення від батьківського об'єкта. Наприклад, ось як стилі CSS працювати у форматі HTML.
MooseX :: AttributeTree є модуль Perl, який дозволяє застосовувати TreeInherit межу на будь-який атрибут у класі NBSP & ;. При цьому змінюється акцесора атрибута працює. При читанні значення атрибута, якщо значення не було встановлено для атрибута в цьому об'єкті, збруя поверне значення від батьківського об'єкта (яка може сама по собі бути в спадщину).
Батьківський об'єкт не повинен бути того ж типу, дочірнього об'єкта, але він повинен мати метод з тим же ім'ям, що і методу доступу атрибута (якщо ви не вкажете fetch_method). (Батьківський метод може бути метод атрибут збруя, але це не повинно бути.) Якщо батько не має правильний метод, ви отримаєте повідомлення про помилку виконання, якщо дитина намагається викликати його.
За замовчуванням, MooseX :: AttributeTree розраховує отримати батьківський об'єкт, викликавши метод батьківського об'єкта. Тим не менш, ви можете використовувати будь-який метод, щоб отримати посилання, передаючи відповідний parent_link до біса TreeInherit:
І NBSP; має предок => (
І NBSP; є => 'RW ",
І NBSP; ISA => 'Об'єкт',
І NBSP; weak_ref => 1,
І NBSP;);
І NBSP; має значення => (
І NBSP; є => 'ро',
І NBSP; риси => [TreeInherit => {parent_link => 'предок'}],
І NBSP;);
Якщо метод повертає ФДООН, то спадкування зупиняється і збруя буде вести себе як звичайний метод доступу. (Зазвичай, parent_link буде ім'я методу атрибута збруя, але це не повинно бути.)
Іноді це не зручно для батьківського об'єкта, щоб мати окремий метод для кожного атрибута, дочірній об'єкт, можливо, захочете, щоб наслідувати. У цьому випадку, ви можете поставити fetch_method до біса TreeInherit.
І NBSP; має other_value => (
І NBSP; є => 'ро',
І NBSP; риси => [TreeInherit => {fetch_method => 'get_inherited'}],
І NBSP;);
З fetch_method, успадковане значення буде надходити з
І NBSP; $ self-> ребен> get_inherited ('other_value');
замість звичайного
І NBSP; $ self-> ребен> other_value ();
Якщо ваш атрибут має метод предикат, він повідомляє, чи був встановлений атрибут цього об'єкта. Предикат не має ніякого знання будь-якого значення, які можуть бути успадковані від батьків. Це означає, що $ object-> has_value може повернутися помилковим, навіть якщо $ object-> значення буде повертати значення (успадкований від батьків).
Крім того, наочним методом атрибута (якщо такі є) буде очистити атрибут тільки на цьому об'єкті, і ніколи не буде впливати на батьківський об'єкт.
Опис
І NBSP; пакет MyClass;
І NBSP; використовувати лося;
І NBSP; використовувати MooseX :: AttributeTree ();
І NBSP; має батька => (
І NBSP; є => 'RW ",
І NBSP; ISA => 'Об'єкт',
І NBSP; weak_ref => 1,
І NBSP;);
І NBSP; має значення => (
І NBSP; є => 'RW ",
І NBSP; риси => [QW / TreeInherit /],
І NBSP;);

Вимоги

  • Perl

Схожі програми

netperf
netperf

3 Jun 15

KDE CIM Browser
KDE CIM Browser

3 Jun 15

xfbsuite
xfbsuite

3 Jun 15

HPC Toolkit
HPC Toolkit

20 Feb 15

Інші програми розробника Christopher J. Madsen

mktime
mktime

2 Jun 15

VBinDiff
VBinDiff

2 Jun 15

MooseX::AttributeTree

Коментар не знайдено
додати коментар
Включіть картинки!