سؤال

لذلك بالنسبة لمشروعي الحالي، هناك ثلاثة فئات Java الرئيسية في الأساس:

  1. واجهة المستخدم الرسومية
  2. رسالة فورية
  3. حساب

في الأساس، يجب أن يكون هناك اتصال كامل، لذلك قررنا استخدام نهج الوسيط بدلا من السماح ل GUI بتشغيل المشروع بأكمله.

في الأساس، سوف يغليف الوسيط الاتصالات. المشكلة التي نفري فيها هي كيفية السماح لمكونات GUI بالتحديث دون بناء طن من الأساليب للوسيط للاتصال في أي وقت يكمل شيئا ما.

السابق. قل واجهة المستخدم الرسومية ترغب في تسجيل الدخول المستخدم، وتسير إلى الوسيط لإنشاء مؤشر ترابط وتسجيل الدخول، ولكن بعد ذلك، يجب على الوسيط ترحيل النجاح / الفشل مرة أخرى إلى GUI وكذلك تحديث رسالة الحالة.

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

كان تصميمنا الأصلي فقط واجهة المستخدم الرسومية يدير كل شيء، لكنه قتل حقا إعادة الاستخدام. هل هناك طريقة تصميم أفضل لاستخدامها في هذه الحالة؟

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

المحلول

إذا كنت تجد المراقب لجلب الكثير من العلاج، فقد يكون الوسيط أفضل طريقة للذهاب. بالتأكيد أعتقد أنه لا ينبغي أن يكون لديك GUI تشغيل العرض. إذا كنت ستستخدم نمط الوسيط، يجب أن يكون الوسيط نفسه مسؤولا. شيء قد تفكر فيه هو متغير لنمط الأوامر. إذا كنت تستخدم Ruby، فقد أوصي بتمرير عمليات استدعاءات الوظيفة كوسيلة لتجنب وجود الوسيط، اتصل بالخوز على كل شيء صغير. ولكن نظرا لأن Java، فقد يساعد شكل من أشكال التغليف في نمط نمط الأوامر.

نصائح أخرى

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

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

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

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

   gui.a()
   gui.b()
   gui.c()

يمكنك إنشاء طريقة واحدة تتعامل بنتيجة استدعاء الثلاثة. ميزة الأساليب المجمعة دلالة (أي setFileInformation على setFileMenu, setTab, ، إلخ.) هو أيضا بعد ذلك إذا كنت بحاجة إلى تغيير واجهة المستخدم الرسومية، قد تتغير محتويات الأساليب، ولكن المكالمة التي يجعل الوسيط قد لا.

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