هذا هو الأمر PDL :: Objectsp الذي يمكن تشغيله في مزود الاستضافة المجانية OnWorks باستخدام إحدى محطات العمل المجانية المتعددة على الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
PDL :: Objects - توجيه الكائن ، ما هو وكيفية استغلاله
الوصف
هذا لا يزال بحاجة إلى أن يكتب بشكل صحيح. [أيضًا ، هل هناك سبب وجيه لا نوصي به
تخزين بيانات الكائن الإضافية في تجزئة الرأس؟]
وراثة
هناك سببان أساسيان لتصنيف الألغاز. الأول هو أنك ببساطة
تريد أن تكون قادرًا على استخدام إجراءاتك الروتينية مثل
$ piddle-> شيء ()
لكن لا تريد إفساد مساحة اسم PDL (هدف يستحق ، بالفعل!). الآخر هو ذلك
كنت ترغب في تقديم معالجة خاصة لبعض الوظائف أو مزيد من المعلومات حول البيانات
يحتوي العبث. في الحالة الأولى ، يمكنك أن تفعل مع
حزمة بار ؛
@ ISA = qw / PDL / ؛
sub foo {my ($ this) =_؛ كمان؛}
الحزمة الرئيسية
$ a = PDL :: pdl (BAR، 5) ؛
$ a-> foo ()؛
ومع ذلك ، نظرًا لأن كائن PDL هو مرجع معتم إلى بنية C ، فلا يمكن القيام بذلك
تمديد فئة PDL عن طريق البيانات الإضافية على سبيل المثال عن طريق التصنيف الفرعي. للتحايل على هذه المشكلة
يحتوي PerlDL على دعم مدمج لمدى فئة PDL عبر لديه- أ علاقة مباركة
تجزئات. يمكنك الحصول على هاس-أ تتصرف مثل هو ببساطة في ذلك تقوم بتعيين كائن "PDL"
إلى السمة المسماة PDL وإعادة تعريف الطريقة تهيئة ().
حزمة FOO ؛
FOO :: ISA = qw (PDL) ؛
التهيئة الفرعية {
صفي $ = التحول ؛
نفسي $ = {
create_time => time ()، # ملحق ضروري :-)
PDL => فارغ ، # تستخدم لتخزين كائن PDL
};
بارك $ self، $ class؛
}
سيستدعي جميع منشئي PDL تهيئة () للتأكد من أن ملحقاتك تمت إضافتها بواسطة
من جميع منشئو PDL تلقائيًا. يتم استخدام سمة "PDL" بواسطة perlDL لتخزين ملف
يستخدم كائن PDL وجميع أساليب PDL هذه السمة تلقائيًا إذا تم استدعاؤها بامتداد
إشارة تجزئة مباركة بدلاً من كائن PDL (عددي مبارك).
تذكر أنه إذا قمت بتصنيف فئة فرعية من فئة فرعية ، فأنت بحاجة إلى ذلك
استدعاء SUPER :: تهيئة.
بحاجة إلى أشياء حول مراجع الكود !!
أمثلة
يمكنك العثور على بعض الأمثلة البسيطة على التصنيف الفرعي PDL في حالة اختبار توزيع PDL
الملفات. ابحث في "t / subclass2.t" ، "t / subclass3.t" ، إلخ.
الناتج إنشاء تلقائي و صنف الأجسام
بالنسبة إلى وظائف PDL حيث يتم إنشاء المخرجات وإعادتها ، ستقوم PDL إما باستدعاء
كائن صنف فرعي "تهيئة" أو طريقة "نسخ" لإنشاء كائن الإخراج. (يرى
PDL :: Indexing للمناقشة حول Output Auto-Creation.) يتم تلخيص هذا السلوك كـ
يتبع:
·
في حالة الاشارات الوظائف ، التي تم تعريفها على أنها تحمل توقيع
func (أ () ، [س] ب ())
سوف تقوم PDL باستدعاء $ a-> copy لإنشاء كائن الإخراج.
بروح فلسفة صنع بيرل سهل الأشياء سهل، هذا السلوك يمكن
يجب كتابة الكائنات المصنفة تحت فئة PDL دون الحاجة إلى زيادة التحميل على العديد من PDL البسيطة
وظائف في هذه الفئة.
يختبر الملف t / subclass4.t في توزيع PDL لهذا السلوك. انظر هذا الملف
على سبيل المثال.
·
بالنسبة للوظائف الأخرى ، ستستدعي PDL $ class-> تهيئة لإنشاء كائن الإخراج. أين
$ class هو اسم فئة الوسيطة الأولى التي يتم توفيرها للدالة.
بالنسبة لهذه الحالات الأكثر تعقيدًا ، من الصعب تخمين الكائن المصنف ثانويًا
المصمم لمعرفة ما إذا كانت "نسخة" أو "تهيئة" مناسبة. لذلك بالنسبة لهذه الحالات ،
يتم استدعاء $ class-> التهيئة افتراضيًا. إذا لم يكن هذا مناسبًا لك ، فقم بإفراط في تحميل ملف
تعمل في الفئة الفرعية الخاصة بك وتفعل كل ما هو مناسب هو وظيفة التحميل الزائد
رمز.
استخدم PDL :: Objectsp عبر الإنترنت باستخدام خدمات onworks.net