الفرق بين المراجعتين ل"Refactoring/extract superclass"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: استخراج الأصناف الفائقة (Extract Superclass)}}</noinclude> == المشكلة == وجود صنفين لهما حقول و...')
 
ط
سطر 9: سطر 9:
  
 
==== قبل إعادة التصميم ====
 
==== قبل إعادة التصميم ====
[[ملف:Extract Superclass - Before.png|بديل=يكون للصنف ميزات تستعمل فقط في حالات معينة.|بدون|تصغير|يكون للصنف ميزات تستعمل فقط في حالات معينة.]]
+
[[ملف:Extract Superclass - Before.png|alt=وجود صنفين لهما حقول وتوابع مشتركة.|بدون|تصغير|وجود صنفين لهما حقول وتوابع مشتركة.]]
 
==== بعد إعادة التصميم ====
 
==== بعد إعادة التصميم ====
[[ملف:Extract Superclass - Before.png|بديل=يكون للصنف ميزات تستعمل فقط في حالات معينة.|بدون|تصغير|يكون للصنف ميزات تستعمل فقط في حالات معينة.]]
+
[[ملف:Extract Superclass - After.png|alt=إنشاء صنف فائق مشترك لهما ونقل جميع الحقول والتوابع المتطابقة إليه.|بدون|تصغير|إنشاء صنف فائق مشترك لهما ونقل جميع الحقول والتوابع المتطابقة إليه.]]
 
== لم إعادة التصميم؟ ==
 
== لم إعادة التصميم؟ ==
 
يحدث نوع من تكرار الشيفرة عندما يؤدي صنفان نفس المهام بنفس الطريقة أو بطرق مختلفة. وتتيح الكائنات آلية داخلية لتبسيط مثل هذه الحالات عن طريق التوريث. ولكن في كثير من الأحيان يبقى هذا التشابه غير ملحوظ حتى وقت إنشاء الأصناف، مما يستلزم إنشاء هيكل التوريث في وقت لاحق.
 
يحدث نوع من تكرار الشيفرة عندما يؤدي صنفان نفس المهام بنفس الطريقة أو بطرق مختلفة. وتتيح الكائنات آلية داخلية لتبسيط مثل هذه الحالات عن طريق التوريث. ولكن في كثير من الأحيان يبقى هذا التشابه غير ملحوظ حتى وقت إنشاء الأصناف، مما يستلزم إنشاء هيكل التوريث في وقت لاحق.

مراجعة 14:29، 17 فبراير 2019

المشكلة

وجود صنفين لهما حقول وتوابع مشتركة.

الحل

إنشاء صنف فائق مشترك لهما ونقل جميع الحقول والتوابع المتطابقة إليه.

مثال

قبل إعادة التصميم

وجود صنفين لهما حقول وتوابع مشتركة.
وجود صنفين لهما حقول وتوابع مشتركة.

بعد إعادة التصميم

إنشاء صنف فائق مشترك لهما ونقل جميع الحقول والتوابع المتطابقة إليه.
إنشاء صنف فائق مشترك لهما ونقل جميع الحقول والتوابع المتطابقة إليه.

لم إعادة التصميم؟

يحدث نوع من تكرار الشيفرة عندما يؤدي صنفان نفس المهام بنفس الطريقة أو بطرق مختلفة. وتتيح الكائنات آلية داخلية لتبسيط مثل هذه الحالات عن طريق التوريث. ولكن في كثير من الأحيان يبقى هذا التشابه غير ملحوظ حتى وقت إنشاء الأصناف، مما يستلزم إنشاء هيكل التوريث في وقت لاحق.

فوائد تطبيق الحل

  • إزالة الشيفرة البرمجية المكررة. ويصبح تواجد الحقول والتوابع المشتركة في مكان واحد فقط.

متى يُترك هذا الحل؟

  • لا يمكنك تطبيق هذه التقنية على الأصناف التي لها صنف فائق بالفعل.

آلية الحل

  1. أنشئ صنف فائق مجرد.
  2. استخدم تقنيات سحب الحقل لأعلى وسحب التابع لأعلى وسحب متن المُنشئ لأعلى لنقل الوظائف المشتركة إلى صنفٍ فائق. ابدأ بالحقول، إذ أنه بالإضافة إلى الحقول المشتركة سوف تحتاج إلى نقل الحقول التي تستخدم في التوابع المشتركة.
  3. ابحث عن أماكن في شيفرة العميل حيث يمكن استبدال استخدام الأصناف الفرعية بالصنف الجديد (مثل في حالة تعريف النوع).

انظر أيضًا

مصادر