https://wiki.hsoub.com/index.php?title=Refactoring/middle_man&feed=atom&action=history
Refactoring/middle man - تاريخ المراجعة
2024-03-29T07:22:57Z
تاريخ التعديل لهذه الصفحة في الويكي
MediaWiki 1.35.0
https://wiki.hsoub.com/index.php?title=Refactoring/middle_man&diff=27974&oldid=prev
جميل-بيلوني: مراجعة وتدقيق.
2019-02-27T15:13:04Z
<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;">مراجعة 15:13، 27 فبراير 2019</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;"><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="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>* [https://refactoring.guru/smells/middle-man صفحة توثيق الوسيط في موقع refactoring.guru.]</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>* [https://refactoring.guru/smells/middle-man صفحة توثيق الوسيط في موقع refactoring.guru.]</div></td></tr>
<tr><td colspan="2"> </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 style="font-weight: bold; text-decoration: none;">[[تصنيف:Refactoring]]</ins></div></td></tr>
<tr><td colspan="2"> </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 style="font-weight: bold; text-decoration: none;">[[تصنيف:Refactoring Smells]]</ins></div></td></tr>
<tr><td colspan="2"> </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 style="font-weight: bold; text-decoration: none;">[[تصنيف:Refactoring Couplers]]</ins></div></td></tr>
</table>
جميل-بيلوني
https://wiki.hsoub.com/index.php?title=Refactoring/middle_man&diff=18821&oldid=prev
Nourtam: أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الوسيط (Middle Man)}}</noinclude> == توصيف المشكلة == عندما يكون للصنف (class) مهمةٌ واحدةٌ فقط...'
2018-09-30T14:23:50Z
<p>أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الوسيط (Middle Man)}}</noinclude> == توصيف المشكلة == عندما يكون للصنف (class) مهمةٌ واحدةٌ فقط...'</p>
<p><b>صفحة جديدة</b></p><div><noinclude>{{DISPLAYTITLE:الوسيط (Middle Man)}}</noinclude><br />
== توصيف المشكلة ==<br />
عندما يكون للصنف (class) مهمةٌ واحدةٌ فقط وهي تفويض المهام (delegation) لصنفٍ آخر، فما أهمية وجوده بالأصل؟<br />
<br />
== أسبابها ==<br />
* قد تنتج المشكلة عن التخلُّص المفرط من الاستدعاءات المتسلسلة كعلاجٍ لمشكلة [[Refactoring/message chains|سلاسل الرسائل (message chains).]]<br />
* أو قد تنتُج عن النقل التدريجيّ للصنف (class) إلى أصناف أخرى ليبقى الصنف الأصليّ فارغًا إلا من أوامر التفويض (delegation).<br />
<br />
== وما الحل؟ ==<br />
[[Refactoring/remove middle man|حذف الوسيط (remove middle man)]] إن كانت معظم أصناف التابع (method's classes) تفوِّض المهام (delegate) إلى صنفٍ آخر.<br />
<br />
== إليك المزيد ==<br />
ستحصل بحلِّ المشكلة على شيفرةٍ أقصر.<br />
<br />
== تجاهل المشكلة ==<br />
يجب ألّا يُحذَف الوسيطُ الموجود لتحقيق هدفٍ ما، مثل:<br />
* تجنُّب الاعتماديّة ما بين الأصناف (interclass dependencies).<br />
* استخدامه في نماذج التصميم (Design Patterns) مثل: نموذج [[Design Patterns/Proxy|Proxy]] أو نموذج [[Design Patterns/Decorator|Decorator]].<br />
<br />
== انظر أيضًا ==<br />
* [[Refactoring/message chains|مشكلة سلاسل الرسائل (message chains)]]<br />
* [[Refactoring/remove middle man|حذف الوسيط (remove middle man)]]<br />
* [[Design Patterns/Proxy|نموذج التصميم Proxy]]<br />
* [[Design Patterns/Decorator|نموذج التصميم Decorator]]<br />
<br />
== مصادر ==<br />
* [https://refactoring.guru/smells/middle-man صفحة توثيق الوسيط في موقع refactoring.guru.]</div>
Nourtam