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


##Why Refactor
في العديد من الأنظمة، يمكن تصنيف الكائنات إما كقيم أو مراجع.
-
المراجع (References): عندما يقابل كائن حقيقي واحد كائناً واحداً فقط في البرنامج. عادة ما تكون المراجع كائنات مثل المستخدم/الطلب/المنتج/إلخ.
-
القيم (Values): عندما يقابل كائن حقيقي واحد كائناً متعددة في البرنامج. يمكن أن تكون هذه الكائنات تواريخ، أو أرقام هواتف، أو عناوين، أو ألوان، وما شابه ذلك.
اختيار المرجع مقابل القيمة ليس دائماً واضحاً تماماً. في بعض الأحيان تكون هناك قيمة بسيطة تحتوي على كمية صغيرة من البيانات غير المتغيرة. ثم يصبح من الضروري إضافة بيانات قابلة للتغيير وتمرير هذه التغييرات في كل مرة يتم فيها الوصول إلى الكائن. في هذه الحالة، يصبح من الضروري تحويلها إلى مرجع.
##Benefits
- يحتوي الكائن على أحدث المعلومات حول كيان معين. إذا تم تغيير الكائن في جزء واحد من البرنامج، فإن هذه التغييرات تكون قابلة للوصول من الأجزاء الأخرى من البرنامج التي تستخدم الكائن.
##How to Refactor
-
استخدم طريقة استبدال المنشئ بدالة المصنع على الفئة التي سيتم إنشاء المراجع منها.
-
حدد الكائن الذي سيكون مسؤولاً عن توفير الوصول إلى المراجع. بدلاً من إنشاء كائن جديد، عندما تحتاج إلى كائن، ستحتاج الآن إلى الحصول عليه من كائن تخزين أو حقل قاموس ثابت (static dictionary field).
-
حدد ما إذا كان سيتم إنشاء المراجع مسبقاً أو ديناميكياً حسب الضرورة. إذا تم إنشاء الكائنات مسبقاً، فتأكد من تحميلها قبل الاستخدام.
-
قم بتغيير دالة المصنع بحيث تعيد مرجعاً. إذا تم إنشاء الكائنات مسبقاً، فحدد كيفية التعامل مع الأخطاء عند طلب كائن غير موجود. قد تحتاج أيضاً إلى استخدام طريقة إعادة تسمية الدالة للتوضيح بأن الدالة تعيد الكائنات الموجودة فقط.