الهيكلية التفرعية للوراثة (Parallel Inheritance Hierarchies)
توصيف المشكلة
يتطلَّب إنشاءُ صنفٍ فرعيٍّ (subclass) لأحد الأصناف إنشاءَ صنفٍ فرعيٍّ ثانٍ لصنفٍ آخر غيره.
أسبابها
لا تبدو المشكلة واضحةً في الهيكليّات (hierarchies) الصغيرة، ولكنها تبدأ بالظهور مع إضافة أصناف (classes) جديدةٍ ممّا يجعل إجراء التعديلات أمرًا صعبًا.
وما الحل؟
التخلُّص من التكرار التفرعيّ بين الهيكليّتين (hierarchies)، ويتمّ بخطوتين:
- إنشاء مرجعيّة (reference) من إحدى الهيكليّتين التفرعيّتين إلى الهيكليّة الثانية.
- إزالة الهيكليّة في الصنف المُشار إليه (referred class)، وذلك بنقل التوابع (move methods) ونقل الحقول (move fields).
إليك المزيد
ستحصل بعلاجك المشكلة على:
- تنظيمٍ أفضل للشيفرة.
- تقليل الشيفرات المُتكرِّرة (duplications).
تجاهل المشكلة
يمكن تجاهل المشكلة عندما يكون وجودُها بديلًا عن مشكلة أعظم ببنية (architecture) البرنامج! فإن نتجت شيفرةٌ أسوء عن تطبيق الحلِّ السابق فالأحرى بك التراجعُ عنه وتجاهل المشكلة والتأقلم معها.