ক্লাস তাদের পিতা বা মাতা ক্লাস থেকে বৈশিষ্ট্যাবলী উত্তরাধিকারী করতে পারেন. কিন্তু কখনও কখনও আপনি একটি বৈশিষ্ট্য একটি পিতা বা মাতা বস্তু থেকে তার মান উত্তরাধিকারী করতে সক্ষম হতে চান. CSS এর শৈলী HTML এ কিভাবে কাজ উদাহরণস্বরূপ, যে.
MooseX :: AttributeTree আপনি আপনার বর্গ মধ্যে কোনো গুণ করতে TreeInherit বৈশিষ্ট্য প্রয়োগ করতে পারবেন যে একটি পার্ল মডিউল. & Nbsp; এই বৈশিষ্ট্য এর অ্যাক্সেসর পদ্ধতি কাজ করে পথ পরিবর্তন করে. অ্যাট্রিবিউট এর মান যখন পড়া কোন মূল্য এই বস্তুর মধ্যে অ্যাট্রিবিউট জন্য সেট করা হয়েছে, তাহলে অ্যাক্সেসর (নিজেই উত্তরাধিকার সুত্রে প্রাপ্ত করা হতে পারে যা) পিতা বা মাতা বস্তু থেকে মান ফিরে আসতে হবে.
পিতা বা মাতা বস্তুর শিশু বস্তু হিসেবে একই ধরনের হতে হবে না, কিন্তু (যদি আপনি একটি fetch_method সরবরাহ, যদি না) এটি বৈশিষ্ট্য এর অ্যাক্সেসর পদ্ধতি হিসাবে একই নামের একটি পদ্ধতি থাকতে হবে. (পিতা বা মাতা এর পদ্ধতি একটি বৈশিষ্ট্য অ্যাক্সেসর পদ্ধতি হতে পারে, কিন্তু তা হতে হবে তা না.) পিতা বা মাতা অধিকার পদ্ধতি আছে না হয়, তাহলে সন্তান কল করার চেষ্টা করে যদি আপনি একটি রান-টাইম ত্রুটি পাবেন.
ডিফল্টরূপে, MooseX :: AttributeTree অবজেক্ট এর পিতা বা মাতা পদ্ধতি কল করে পিতা বা মাতা বস্তুর পেতে আশা. যাইহোক, যদি আপনি TreeInherit বৈশিষ্ট্য যথাযথ parent_link পাশ দিয়ে লিঙ্ক উদ্ধার করতে কোনো পদ্ধতি ব্যবহার করতে পারেন:
& Nbsp; আছে পূর্বপুরুষ => (
& Nbsp; => 'RW' হয়,
& Nbsp; ঈসা => 'অবজেক্ট',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; => (মূল্য আছে
& Nbsp; => 'হল ro' হয়,
& Nbsp; বৈশিষ্ট => [TreeInherit => {parent_link => 'পূর্বপুরুষ'}],
& Nbsp;);
পদ্ধতি undef ফেরৎ তারপর, উত্তরাধিকার স্টপ এবং অ্যাক্সেসর একটি স্বাভাবিক অ্যাক্সেসর মত আচরণ করবে. (সাধারণত, parent_link একটি বৈশিষ্ট্য অ্যাক্সেসর পদ্ধতি নাম হতে পারে, কিন্তু তা হতে হবে তা না.)
প্রতিটি একটি শিশু বস্তুর উত্তরাধিকারী করতে পারেন যে বৈশিষ্ট্য জন্য পিতা বা মাতা বস্তুর একটি পৃথক পদ্ধতি আছে জন্য কখনও কখনও এটি সুবিধাজনক না. যে ক্ষেত্রে, আপনি TreeInherit বৈশিষ্ট্য একটি fetch_method সরবরাহ করতে পারেন.
& Nbsp; আছে other_value => (
& Nbsp; => 'হল ro' হয়,
& Nbsp; বৈশিষ্ট => [TreeInherit => {fetch_method => 'get_inherited'}]
& Nbsp;);
Fetch_method সঙ্গে, উত্তরাধিকার সুত্রে প্রাপ্ত মান থেকে আসতে হবে
& Nbsp; $ স্ব> parent-> ('other_value') get_inherited;
পরিবর্তে স্বাভাবিক
& Nbsp; $ স্ব> parent-> other_value ();
আপনার অ্যাট্রিবিউট একটি বিধেয় পদ্ধতি আছে, এটি বৈশিষ্ট্য যে বস্তুর উপর সেট করা হয়েছে কিনা রিপোর্ট. সম্পৃক্ত একটি পিতা বা মাতা থেকে উত্তরাধিকার সুত্রে প্রাপ্ত হতে পারে যে কোনো মান কোন জ্ঞান আছে. এই $ object- যে> has_value মিথ্যা ফিরে যেতে পারে মানে এমনকি $ object- যদিও> (পিতা বা মাতা থেকে উত্তরাধিকার সুত্রে প্রাপ্ত) একটি মান ফিরে আসবে মান.
অনুরূপভাবে, অ্যাট্রিবিউট এর পরিষ্কার পদ্ধতি (যদি থাকে) শুধুমাত্র এই বস্তুর উপর বৈশিষ্ট্য মুছে ফেলা হবে, এবং একটি পিতা বা মাতা বস্তুর প্রভাবিত হবে না.
সারসংক্ষেপ
& Nbsp; প্যাকেজ MyClass;
& Nbsp; আমেরিকার হরিণবিশেষ ব্যবহার;
& Nbsp;) (MooseX :: AttributeTree ব্যবহার;
& Nbsp; => (পিতা বা মাতা আছে
& Nbsp; => 'RW' হয়,
& Nbsp; ঈসা => 'অবজেক্ট',
& Nbsp; weak_ref => 1,
& Nbsp;);
& Nbsp; => (মূল্য আছে
& Nbsp; => 'RW' হয়,
& Nbsp; বৈশিষ্ট => [QW / TreeInherit /],
& Nbsp;);
আবশ্যক
- পার্ল
পাওয়া মন্তব্যসমূহ না