MooseX::AttributeTree

צילום מסך תוכנה:
MooseX::AttributeTree
פרטי תוכנה:
גרסה: 0.04
טען תאריך: 14 Apr 15
מפתחים: Christopher J. Madsen
רשיון: ללא תשלום
פופולריות: 9

Rating: nan/5 (Total Votes: 0)

חוגים יכולים לרשת תכונות מהכיתות האם שלהם. אבל לפעמים אתה רוצה תכונה להיות מסוגל לרשת הערך שלה מאובייקט אב. לדוגמא, ככה סגנונות CSS לעבוד ב- HTML.
MooseX :: AttributeTree הוא מודול פרל המאפשר לך להחיל את תכונת TreeInherit לכל תכונה בכיתה שלך & nbsp;. זה משנה את דרך שיטת accessor של התכונה עובדת. בעת קריאת הערך של התכונה, אם אין לו ערך נקבע לתכונה באובייקט זה, accessor תחזיר את הערך מאובייקט האב (שעשוי להיות תורשתי עצמו).
אובייקט ההורה לא צריך להיות מאותו הסוג כאובייקט הילד, אבל הוא חייב לקבל שיטה עם אותו שם כמו שיטת accessor של התכונה (אלא אם כן אתה מספק fetch_method). (השיטה של ​​ההורה עשויה להיות שיטת תכונת accessor, אבל זה לא צריך להיות.) אם ההורה אין שיטה הנכונה, תקבל את שגיאת זמן ריצה אם הילד מנסה לקרוא לזה.
כברירת מחדל, MooseX :: AttributeTree מצפה לקבל את אובייקט ההורה על ידי קורא שיטת ההורה של האובייקט. עם זאת, אתה יכול להשתמש בכל שיטה כדי לאחזר את הקישור על ידי העברת parent_link המתאים לתכונת TreeInherit:
& Nbsp; יש אב קדמון => (
& Nbsp; הוא => 'RW',
& Nbsp; isa => 'אובייקט',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; יש לו ערך => (
& Nbsp; הוא = 'ro ">,
& Nbsp; תכונות => [TreeInherit => {'האב הקדמון' parent_link =>}],
& Nbsp;);
אם השיטה מחזירה undef, אז הירושה עוצרת וaccessor תתנהג כמו accessor נורמלית. (בדרך כלל, parent_link יהיה שמו של שיטת תכונת accessor, אבל זה לא צריך להיות.)
לפעמים זה לא נוח לאובייקט ההורה ליש שיטה נפרדת לכל תכונה שאובייקט ילד עשוי רוצה לרשת. במקרה זה, אתה יכול לספק fetch_method לתכונת TreeInherit.
& Nbsp; יש other_value => (
& Nbsp; הוא = 'ro ">,
& Nbsp; תכונות => [TreeInherit => {fetch_method => 'get_inherited'}],
& Nbsp;);
עם fetch_method, הערך בירושה יגיע מ
& Nbsp; $ עצמיים> הורה-> get_inherited ('other_value');
במקום הרגיל
& Nbsp; $ עצמיים> הורה-> other_value ();
אם התכונה שלך יש שיטת נשוא, הוא מדווח אם התכונה הוגדרה על אובייקט ש. יש הנשוא לא ידע על כל ערך שהיה יכולים להיות בירושה מהורים. משמעות הדבר היא כי אובייקט $> has_value עשוי לחזור שווא למרות שאובייקט $> ערך יחזור ערך (בירושה מהאב).
כמו כן, השיטה ברורה יותר של התכונה (אם בכלל) תהיה לנקות את התכונה רק באובייקט זה, ולעולם לא תפגע באובייקט אב.
תקציר
& Nbsp; MyClass חבילה;
& Nbsp; להשתמש מוס;
& Nbsp; להשתמש MooseX :: AttributeTree ();
& Nbsp; יש הורה => (
& Nbsp; הוא => 'RW',
& Nbsp; isa => 'אובייקט',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; יש לו ערך => (
& Nbsp; הוא => 'RW',
& Nbsp; תכונות => [QW / TreeInherit /],
& Nbsp;);

דרישות :

  • Perl

תוכנה דומה

benchmarking
benchmarking

15 Apr 15

Valley Benchmark
Valley Benchmark

20 Feb 15

Web-bench
Web-bench

3 Jun 15

תוכנות אחרות של יזם Christopher J. Madsen

VBinDiff
VBinDiff

2 Jun 15

mktime
mktime

2 Jun 15

תגובות ל MooseX::AttributeTree

תגובות לא נמצא
להוסיף הערה
הפעל את התמונות!