GWT-EXT - ما هي أفضل طريقة الحاجيات معين ContentPanel بعد الحدث ؟

StackOverflow https://stackoverflow.com/questions/111854

  •  02-07-2019
  •  | 
  •  

سؤال

الأولى ما بعد لا تؤذي لي :)

أنا باستخدام BorderLayout مع المعتاد شمال ، غرب ، وسط ، جنوب لوحات.على الغربية ContentPanel, لدي Tree.إذا حدث (OnClick)يحدث أريد معين في مربع الحوار عرض على مركز ContentPanel.

ما هي أفضل طريقة بالنسبة لي أن أفعل هذا ؟ حاليا أنا باستخدام وظيفة تسمى returnPanel() أن عوائد مركز ContentPanel.في معالج الحدث أنا استدعاء هذه الدالة (MainWindow.returnPanel().add(myDialog)).

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

المحلول

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

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

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

راجع للشغل, هذا لا علاقة له مع GWT أو حتى جافا على وجه الخصوص.

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