الفرق بين المراجعتين ل"Refactoring/replace array with object"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'تبديل المصفوفات بكائنات (Replace Array with Object) تقنية إعادة التصميم هذه هي حالة خاصة من Refactoring/replace d...')
 
ط
سطر 1: سطر 1:
تبديل المصفوفات بكائنات (Replace Array with Object)
+
<noinclude>{{DISPLAYTITLE: تبديل المصفوفات بكائنات (Replace Array with Object)}}</noinclude>
 
 
 
تقنية إعادة التصميم هذه هي حالة خاصة من [[Refactoring/replace data value with object|تبديل قيم البيانات إلى كائنات]].
 
تقنية إعادة التصميم هذه هي حالة خاصة من [[Refactoring/replace data value with object|تبديل قيم البيانات إلى كائنات]].
  
سطر 38: سطر 37:
 
== مصادر ==
 
== مصادر ==
 
* <span> </span>[https://refactoring.guru/replace-array-with-object صفحة توثيق تبديل المصفوفات بكائنات في موقع refactoring.guru].
 
* <span> </span>[https://refactoring.guru/replace-array-with-object صفحة توثيق تبديل المصفوفات بكائنات في موقع refactoring.guru].
 +
[[تصنيف:Refactoring]]
 +
[[تصنيف:Refactoring Techniques]]
 +
[[تصنيف:Refactoring Organizing Data]]

مراجعة 16:28، 14 نوفمبر 2018

تقنية إعادة التصميم هذه هي حالة خاصة من تبديل قيم البيانات إلى كائنات.

المشكلة

لديك مصفوفة تحتوي على أنواع مختلفة من البيانات.

$row = array();
$row[0] = "Liverpool";
$row[1] = 15;

الحل

استبدل المصفوفة بكائن يكون له حقول منفصلة لكل عنصر.

$row = new Performance();
$row->setName("Liverpool");
$row->setWins(15);

لم إعادة التصميم؟

تُعد المصفوفات أداة ممتازة لتخزين البيانات والمجموعات من نوع واحد. ولكن إذا كنت تستخدم المصفوفة مثل صناديق مكتب البريد، وتخزن اسم المستخدم في الصندوق رقم 1 وعنوان المستخدم في الصندوق رقم 14، ستندم يومًا ما على فعلتك هذه. سيؤدي هذا النهج إلى إخفاقات كارثية عندما يضع أحدُهم شيئًا في "الصندوق" الخطأ كما سيستهلك أيضا الوقت لمعرفة البيانات المخزنة في كل صندوق.

فوائد تطبيق الحل

  • في الصنف الناتج، يمكن وضع كافة السلوكيات المقترنة التي سبق تخزينها في الصنف الرئيسي أو في أي مكان آخر.
  • توثيق حقول صنف ما أسهل بكثير من توثيق عناصر مصفوفة.

آلية الحل

  1. إنشاء صنف جديد يحتوي على البيانات الموجودة في المصفوفة. وضع المصفوفة نفسها في الصنف كحقل عام.
  2. إنشاء حقل لتخزين الكائن من هذا الصنف في الصنف الأصلي. لا تنسي إنشاء الكائن نفسه أيضا في المكان الذي بدأت فيه مصفوفة البيانات.
  3. في الصنف الجديد، أنشئ توابع الوصول واحدًا تلو الآخر لكل من عناصر المصفوفة. أعطهم أسماء توضيحية تبين ما يفعلونه. في نفس الوقت، استبدل كل استخدام لعنصر مصفوفة في الشيفرة الرئيسية مع تابع الوصول المقابل.
  4. عند إنشاء توابع الوصول لكافة العناصر، اجعل المصفوفة خاصة.
  5. لكل عنصر من المصفوفة، أنشئ حقل خاص في الصنف ثم غَيِّر توابع الوصول بحيث تستخدم هذا الحقل بدلًا من المصفوفة.
  6. احذف المصفوفة عند نقل كافة البيانات.

انظر أيضًا

مصادر