الفرق بين المراجعتين لصفحة: «Refactoring/remove setting method»
Khaled-yassin (نقاش | مساهمات) أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: ازالة توابع الإعدادات (Remove Setting Method)}}</noinclude> == المشكلة == يكون تعيين قيمة الحقل...' |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
سطر 9: | سطر 9: | ||
==== قبل إعادة التصميم ==== | ==== قبل إعادة التصميم ==== | ||
[[ملف:Remove Setting Method - Before.png|بديل=يغيّر التابع من قيمة الحقل.|بدون|تصغير|يغيّر التابع من | يضبط التابع <code>()setImmutableValue</code> قيمةً غير قابلة للتغيير أو التعديل في المستقبل:[[ملف:Remove Setting Method - Before.png|بديل=يغيّر التابع من قيمة الحقل.|بدون|تصغير|يغيّر التابع من قيمة الحقل.]] | ||
==== بعد إعادة التصميم ==== | ==== بعد إعادة التصميم ==== | ||
حذف التابع <code>()setImmutableValue</code> من الصنف <code>Customer</code>:[[ملف:Remove Setting Method - After.png|بديل=إزالة التابع الذي يضبط قيمة الحقل.|بدون|تصغير|إزالة التابع الذي يضبط قيمة الحقل.]] | |||
== لم إعادة التصميم؟ == | == لم إعادة التصميم؟ == | ||
سطر 18: | سطر 18: | ||
== آلية الحل == | == آلية الحل == | ||
# يجب أن تكون قيمة الحقل قابلة للتغيير فقط في | # يجب أن تكون قيمة الحقل قابلة للتغيير فقط في الباني. إذا كان الباني لا يحتوي على معامل لضبط القيمة، أضف واحدًا. | ||
# ابحث عن جميع استدعاءات الضابط. | # ابحث عن جميع استدعاءات الضابط. | ||
#* إذا وُضِع استدعاء ضابط مباشرة بعد استدعاء | #* إذا وُضِع استدعاء ضابط مباشرة بعد استدعاء باني الصنف الحالي، انقل وسيطه إلى استدعاء الباني واحذف الضابط. | ||
#* استبدل استدعاءات الضابط في | #* استبدل استدعاءات الضابط في الباني بالوصول المباشر إلى الحقل. | ||
# احذف الضابط. | # احذف الضابط. | ||
== انظر أيضًا == | == انظر أيضًا == | ||
* [[Refactoring/change reference to value|تبديل المرجع إلى قيمة (Change Reference to Value)]]. | * [[Refactoring/change reference to value|تبديل المرجع إلى قيمة (Change Reference to Value)]]. | ||
* [[Refactoring/data clumps|البيانات المُجمَّعة (Data Clumps)]]. | |||
* [[Refactoring/preserve whole object|الحفاظ على الكائن كاملًا (Preserve Whole Object)]]. | |||
== مصادر == | == مصادر == | ||
سطر 31: | سطر 33: | ||
[[تصنيف:Refactoring]] | [[تصنيف:Refactoring]] | ||
[[تصنيف:Refactoring Techniques]] | [[تصنيف:Refactoring Techniques]] | ||
[[تصنيف:Simplifying Method Calls]] | [[تصنيف:Refactoring Simplifying Method Calls]] |
المراجعة الحالية بتاريخ 07:52، 26 فبراير 2019
المشكلة
يكون تعيين قيمة الحقل فقط عند إنشائه، ولا تتغير في أي وقت لاحق.
الحل
إزالة التوابع التي تضبط قيمة الحقل.
مثال
قبل إعادة التصميم
يضبط التابع ()setImmutableValue
قيمةً غير قابلة للتغيير أو التعديل في المستقبل:
بعد إعادة التصميم
حذف التابع ()setImmutableValue
من الصنف Customer
:
لم إعادة التصميم؟
إذا كنت تريد منع أي تغييرات في قيمة الحقل.
آلية الحل
- يجب أن تكون قيمة الحقل قابلة للتغيير فقط في الباني. إذا كان الباني لا يحتوي على معامل لضبط القيمة، أضف واحدًا.
- ابحث عن جميع استدعاءات الضابط.
- إذا وُضِع استدعاء ضابط مباشرة بعد استدعاء باني الصنف الحالي، انقل وسيطه إلى استدعاء الباني واحذف الضابط.
- استبدل استدعاءات الضابط في الباني بالوصول المباشر إلى الحقل.
- احذف الضابط.
انظر أيضًا
- تبديل المرجع إلى قيمة (Change Reference to Value).
- البيانات المُجمَّعة (Data Clumps).
- الحفاظ على الكائن كاملًا (Preserve Whole Object).