https://wiki.hsoub.com/index.php?title=Refactoring/alternative_classes_with_different_interfaces&feed=atom&action=history
Refactoring/alternative classes with different interfaces - تاريخ المراجعة
2024-03-28T14:42:53Z
تاريخ التعديل لهذه الصفحة في الويكي
MediaWiki 1.35.0
https://wiki.hsoub.com/index.php?title=Refactoring/alternative_classes_with_different_interfaces&diff=27958&oldid=prev
جميل-بيلوني: مراجعة وتدقيق.
2019-02-26T13:44:11Z
<p>مراجعة وتدقيق.</p>
<table class="diff diff-contentalign-right diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="ar">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">→ مراجعة أقدم</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">مراجعة 13:44، 26 فبراير 2019</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l29" >سطر 29:</td>
<td colspan="2" class="diff-lineno">سطر 29:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[تصنيف:Refactoring]]</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[تصنيف:Refactoring]]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[تصنيف:Refactoring Smells]]</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[تصنيف:Refactoring Smells]]</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>[[تصنيف:Refactoring <del class="diffchange diffchange-inline">Classes]]</del></div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>[[تصنيف:Refactoring <ins class="diffchange diffchange-inline">Object-Orientation Abusers</ins>]]</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">[[تصنيف:Refactoring Methods</del>]]</div></td><td colspan="2"> </td></tr>
</table>
جميل-بيلوني
https://wiki.hsoub.com/index.php?title=Refactoring/alternative_classes_with_different_interfaces&diff=13229&oldid=prev
Nourtam: إضافة رابط المصدر
2018-07-18T17:09:57Z
<p>إضافة رابط المصدر</p>
<table class="diff diff-contentalign-right diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="ar">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">→ مراجعة أقدم</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">مراجعة 17:09، 18 يوليو 2018</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l26" >سطر 26:</td>
<td colspan="2" class="diff-lineno">سطر 26:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== مصادر ==</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>== مصادر ==</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>* صفحة الأصناف البديلة في <del class="diffchange diffchange-inline">توثيق إعادة التصميم</del>.</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>* <ins class="diffchange diffchange-inline">[https://refactoring.guru/smells/alternative-classes-with-different-interfaces </ins>صفحة <ins class="diffchange diffchange-inline">توثيق </ins>الأصناف البديلة في <ins class="diffchange diffchange-inline">موقع refactoring.guru</ins>.<ins class="diffchange diffchange-inline">]</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[تصنيف:Refactoring]]</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[تصنيف:Refactoring]]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[تصنيف:Refactoring Smells]]</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[تصنيف:Refactoring Smells]]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[تصنيف:Refactoring Classes]]</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[تصنيف:Refactoring Classes]]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[تصنيف:Refactoring Methods]]</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[تصنيف:Refactoring Methods]]</div></td></tr>
</table>
Nourtam
https://wiki.hsoub.com/index.php?title=Refactoring/alternative_classes_with_different_interfaces&diff=13228&oldid=prev
Nourtam: أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الأصناف البديلة (alternative) ذات الواجهات (interfaces) المختلفة}}</noinclude> == توصيف المشكلة ==...'
2018-07-18T17:08:47Z
<p>أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الأصناف البديلة (alternative) ذات الواجهات (interfaces) المختلفة}}</noinclude> == توصيف المشكلة ==...'</p>
<p><b>صفحة جديدة</b></p><div><noinclude>{{DISPLAYTITLE:الأصناف البديلة (alternative) ذات الواجهات (interfaces) المختلفة}}</noinclude><br />
== توصيف المشكلة ==<br />
التطابق بالمهام (function) ما بين صنفين (classes) ولكن بأسماءٍ مختلفةٍ لتوابعهما (methods).<br />
<br />
== أسبابها ==<br />
عدم دراية المبرمج بوجود صنفٍ آخر يكافِئ بمهامّه مهامّ الصنف الحالي الذي ينشِئه.<br />
<br />
== وما الحل؟ ==<br />
حذف أحد الصنفين بعد تنفيذ إحدى الحلول الآتية:<br />
* [[Refactoring/rename method|إعادة تسمية التوابع (methods)]] لتصبح متطابقةً بكافّة الأصناف البديلة (alternative) (أي الأصناف المتكافئة بالمهام).<br />
* توحيد التوقيع (signature) وتعريف الاستخدام ما بين التوابع، وذلك إمّا [[Refactoring/move method|بنقل التابع (move method)]] أو [[Refactoring/add parameter|إضافة المعاملات (add parameters)]] أو [[Refactoring/parameterize method|دمج التوابع عبر المعاملات (parameterize method)]].<br />
* إن كان التطابق جزئيًا لا يشمل كافّة المهام في الصنفين فمن الممكن [[Refactoring/extract superclass|استخراج صنفٍ أعلى (superclass)]] وجعلهما صنفين فرعيين (subclasses) له.<br />
<br />
== إليك المزيد ==<br />
ستتخلَّص -بعلاجك المشكلةَ- من الشيفرات المُتكرِّرة (duplicates) في البرنامج مما سيقلِّصُ من حجمه، وستصبح الشيفرة مقروءةً ومفهومةً أكثر، ولم يعد هناك داعٍ للتساؤل عن سبب وجود صنفين مختلفين لأداء مهمةٍ واحدة!<br />
<br />
== تجاهل المشكلة ==<br />
ليس من السهل دائمًا دمج الصنفين وقد يصبح مستحيلًا ببعض الحالات؛ كأن يقع الصنفان في مكتبتين مختلفتين لكلٍّ منهما صنفها الخاصّ بها.<br />
<br />
== انظر أيضًا ==<br />
* [[Refactoring/rename method|إعادة تسمية التوابع (methods)]]<br />
* [[Refactoring/move method|نقل التابع (move method)]]<br />
* [[Refactoring/add parameter|إضافة المعاملات (add parameters)]]<br />
* [[Refactoring/parameterize method|دمج التوابع عبر المعاملات (parameterize method)]]<br />
* [[Refactoring/extract superclass|استخراج صنفٍ أعلى (superclass)]] <br />
<br />
== مصادر ==<br />
* صفحة الأصناف البديلة في توثيق إعادة التصميم.<br />
[[تصنيف:Refactoring]]<br />
[[تصنيف:Refactoring Smells]]<br />
[[تصنيف:Refactoring Classes]]<br />
[[تصنيف:Refactoring Methods]]</div>
Nourtam