تغليف الحقل.
لديك حقل عام (public field).
اجعل الحقل خاصاً (private) وأنشئ دوال وصول (access methods) له.
##Example
class Person {
public String name;
}class Person {
private String name;
public String getName() {
return name;
}
public void setName(String arg) {
name = arg;
}
}##Why Refactor
أحد ركائز البرمجة كائنية التوجه (OOP) هو التغليف (Encapsulation)، أي القدرة على إخفاء بيانات الكائنات. خلاف ذلك، ستكون جميع الكائنات عامة ويمكن للكائنات الأخرى الحصول على بيانات كائنك وتعديلها دون أي فحوصات أو ضوابط! تفصل البيانات عن السلوكيات المرتبطة بها، وتتعرض نمطية (modularity) أقسام البرنامج للخطر، وتصبح الصيانة معقدة.
##Benefits
-
إذا كانت بيانات المكون وسلوكه مترابطين بشكل وثيق وموجودين في نفس المكان في الكود، فسيكون من الأسهل عليك بكثير صيانة هذا المكون وتطويره.
-
يمكنك أيضاً إجراء عمليات معقدة تتعلق بالوصول إلى حقول الكائنات.
##How to Refactor
-
أنشئ دالة الحصول (getter) ودالة التعيين (setter) للحقل.
-
ابحث عن جميع استدعاءات الحقل. استبدل الحصول على قيمة الحقل بدالة الحصول، واستبدل تعيين قيم الحقل الجديدة بدالة التعيين.
-
بعد استبدال جميع استدعاءات الحقل، اجعل الحقل خاصاً (private).
الخطوات التالية
تقنية تغليف الحقل هي الخطوة الأولى فقط لتقريب البيانات والسلوكيات المتعلقة بها من بعضها البعض. بعد إنشاء دوال وصول بسيطة للحقول، يجب عليك إعادة فحص الأماكن التي يتم فيها استدعاء هذه الدوال. من المحتمل جداً أن يكون الكود في هذه المناطق أكثر ملاءمة داخل دوال الوصول نفسها.