الفرق بين المراجعتين ل"Refactoring/alternative classes with different interfaces"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الأصناف البديلة (alternative) ذات الواجهات (interfaces) المختلفة}}</noinclude> == توصيف المشكلة ==...')
 
ط (مراجعة وتدقيق.)
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 26: سطر 26:
  
 
== مصادر ==
 
== مصادر ==
* صفحة الأصناف البديلة في توثيق إعادة التصميم.
+
* [https://refactoring.guru/smells/alternative-classes-with-different-interfaces صفحة توثيق الأصناف البديلة في موقع refactoring.guru.]
 
[[تصنيف:Refactoring]]
 
[[تصنيف:Refactoring]]
 
[[تصنيف:Refactoring Smells]]
 
[[تصنيف:Refactoring Smells]]
[[تصنيف:Refactoring Classes]]
+
[[تصنيف:Refactoring Object-Orientation Abusers]]
[[تصنيف:Refactoring Methods]]
 

المراجعة الحالية بتاريخ 13:44، 26 فبراير 2019

توصيف المشكلة

التطابق بالمهام (function) ما بين صنفين (classes) ولكن بأسماءٍ مختلفةٍ لتوابعهما (methods).

أسبابها

عدم دراية المبرمج بوجود صنفٍ آخر يكافِئ بمهامّه مهامّ الصنف الحالي الذي ينشِئه.

وما الحل؟

حذف أحد الصنفين بعد تنفيذ إحدى الحلول الآتية:

إليك المزيد

ستتخلَّص -بعلاجك المشكلةَ- من الشيفرات المُتكرِّرة (duplicates) في البرنامج مما سيقلِّصُ من حجمه، وستصبح الشيفرة مقروءةً ومفهومةً أكثر، ولم يعد هناك داعٍ للتساؤل عن سبب وجود صنفين مختلفين لأداء مهمةٍ واحدة!

تجاهل المشكلة

ليس من السهل دائمًا دمج الصنفين وقد يصبح مستحيلًا ببعض الحالات؛ كأن يقع الصنفان في مكتبتين مختلفتين لكلٍّ منهما صنفها الخاصّ بها.

انظر أيضًا

مصادر