شعار ConstructiCat
CodeBust.
تصفح القسم ▾

الحسد على الميزات.

تصل إحدى الوظائف إلى بيانات كائن آخر أكثر من بياناتها الخاصة.

##العلامات والأعراض

تصل إحدى الوظائف إلى بيانات كائن آخر أكثر من بياناتها الخاصة.

class InvoicePrinter {
  String line(Order order) {
    return order.customer.name + ": " + order.item.sku + " x" + order.item.qty;
  }
}

##أسباب المشكلة

قد تظهر هذه الرائحة بعد نقل الحقول إلى فئة بيانات. في هذه الحالة، قد تريد نقل العمليات على البيانات إلى هذه الفئة أيضاً.

##المعالجة

إعادة الهيكلة باستخدام

##الفوائد

  • تكرار أقل للكود (إذا وُضع كود معالجة البيانات في مكان مركزي).

  • تنظيم أفضل للكود (وظائف معالجة البيانات قريبة من البيانات الفعلية).