رفع التابع (Pull Up Method).
Your subclasses have methods that perform similar work.
اجعل التوابع متطابقة ثم انقلها إلى الفئة الفائقة المناسبة.
##Example


##Why Refactor
Subclasses grew and developed independently of one another, causing identical (or nearly identical) fields and methods.
##Benefits
-
يتخلص من الكود المكرر. إذا كنت بحاجة إلى إجراء تغييرات على تابع، فمن الأفضل القيام بذلك في مكان واحد بدلاً من الاضطرار إلى البحث عن جميع التوابع المكررة في الفئات الفرعية.
-
يمكن أيضاً استخدام تقنية إعادة الهيكلة هذه إذا قامت فئة فرعية، لسبب ما، بإعادة تعريف تابع للفئة الفائقة ولكنه يؤدي نفس العمل جوهرياً.
##How to Refactor
-
ابحث عن التوابع المتشابهة في الفئات الفائقة. وإذا لم تكن متطابقة، فقم بصياغتها لتتطابق مع بعضها البعض.
-
إذا كانت التوابع تستخدم مجموعة معاملات مختلفة، فضع المعاملات بالشكل الذي تريد رؤيته في الفئة الفائقة.
-
انسخ التابع إلى الفئة الفائقة. هنا قد تجد أن كود التابع يستخدم حقولاً وتوابع موجودة فقط في الفئات الفرعية وبالتالي فهي غير متوفرة في الفئة الفائقة. لحل هذه المشكلة، يمكنك:
-
بالنسبة للحقول: استخدم إما رفع الحقل (Pull Up Field) أو التغليف الذاتي للحقل (Self-Encapsulate Field) لإنشاء توابع الجلب والتعيين (Getters and Setters) في الفئات الفرعية؛ ثم صرح بهذه التوابع بشكل مجرد (Abstractly) في الفئة الفائقة.
-
بالنسبة للتوابع: استخدم إما رفع التابع (Pull Up Method) أو صرح بتوابع مجردة (Abstract methods) لها في الفئة الفائقة (لاحظ أن فئتك ستصبح مجردة إذا لم تكن كذلك من قبل).
-
-
أزل التوابع من الفئات الفرعية.
-
تحقق من المواقع التي يتم فيها استدعاء التابع. في بعض الأماكن، قد تتمكن من استبدال استخدام الفئة الفرعية بالفئة الفائقة.