سؤال

أقوم بإعادة صياغة بعض الكود للحصول على مهمة - العرض حاليا يحتوي العرض على الكثير من الأزرار والقوائم ومستمع عمل واحد يقرر ما يجب القيام به باستخدام Event.GetSource (). من ما قرأته أن الناس يعتقدون أنه من الأفضل لكل مكون من واجهة المستخدم الرسومية أن يكون لديك مستمع عمل خاص به، ربما تم إنشاؤه من خلال نوع من المصنع. ومع ذلك بخلاف تنظيف الكود قليلا ما الفوائد الأخرى التي تعطيلها هذا - أيضا لا يعني ذلك الكثير من الأشياء ستكون على كومة الكومة ويمكن أن تؤثر على الأداء؟

شكرًا،

أليس

هل كانت مفيدة؟

المحلول

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

  • أولا، يجعل الكود يعمل بشكل أسرع قليلا.

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

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

مصدر: أنماط أحداث جافا

نصائح أخرى

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

بالنظر إلى الاختيار، عادة ما أذهب لما يقلل من كمية التعليمات البرمجية التي يجب أن أكتب إليها، حيث يعني رمز أقل عادة فرصا أقل للخلال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top