ConstructiCat Logo
CodeBust.
Browse section ▾

تغيير القيمة إلى مرجع.

Problem

لديك العديد من النسخ المتطابقة لفئة واحدة تحتاج إلى استبدالها بكائن واحد.

Solution

قم بتحويل الكائنات المتطابقة إلى كائن مرجعي واحد.

##Example

قبل
Change Value to Reference - Before
بعد
Change Value to Reference - After

##Why Refactor

في العديد من الأنظمة، يمكن تصنيف الكائنات إما كقيم أو مراجع.

  • المراجع (References): عندما يقابل كائن حقيقي واحد كائناً واحداً فقط في البرنامج. عادة ما تكون المراجع كائنات مثل المستخدم/الطلب/المنتج/إلخ.

  • القيم (Values): عندما يقابل كائن حقيقي واحد كائناً متعددة في البرنامج. يمكن أن تكون هذه الكائنات تواريخ، أو أرقام هواتف، أو عناوين، أو ألوان، وما شابه ذلك.

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

##Benefits

  • يحتوي الكائن على أحدث المعلومات حول كيان معين. إذا تم تغيير الكائن في جزء واحد من البرنامج، فإن هذه التغييرات تكون قابلة للوصول من الأجزاء الأخرى من البرنامج التي تستخدم الكائن.

##How to Refactor

  1. استخدم طريقة استبدال المنشئ بدالة المصنع على الفئة التي سيتم إنشاء المراجع منها.

  2. حدد الكائن الذي سيكون مسؤولاً عن توفير الوصول إلى المراجع. بدلاً من إنشاء كائن جديد، عندما تحتاج إلى كائن، ستحتاج الآن إلى الحصول عليه من كائن تخزين أو حقل قاموس ثابت (static dictionary field).

  3. حدد ما إذا كان سيتم إنشاء المراجع مسبقاً أو ديناميكياً حسب الضرورة. إذا تم إنشاء الكائنات مسبقاً، فتأكد من تحميلها قبل الاستخدام.

  4. قم بتغيير دالة المصنع بحيث تعيد مرجعاً. إذا تم إنشاء الكائنات مسبقاً، فحدد كيفية التعامل مع الأخطاء عند طلب كائن غير موجود. قد تحتاج أيضاً إلى استخدام طريقة إعادة تسمية الدالة للتوضيح بأن الدالة تعيد الكائنات الموجودة فقط.