java - MVP 和 GWT 小部件之间的通信

标签 java gwt architecture mvp

如果我在 GWT 中使用 MVP 模式,就像在 2009 年 Google I/O 的 GWT 架构最佳实践演讲中那样,但是已经将信息分散到多个小部件中,应该如何填充值对象?

假设我有一个 EditPersonView/Presenter、一个 EditPetView/Presenter 和一个 EditAddressView/Presenter,最后两个是作为 EditPersonView 面板一部分的小部件。有了这些,我有以下类(class):

class PersonDetails {
    private PetDetails pet;
    private AddressDetails addressDetails;

    // ...
}

PetDetails 和 AddressDetails 实例变量在它们的演示者对应物中进行管理。当用户单击 EditPersonView 中的“保存”按钮时,小部件之间应该如何进行通信,以便 PersonDetails 填充来自其子小部件的信息?

最佳答案

如果您查看 presentation 的第 42 页来自 Google IO 2009 的 Ray Ryan 你应该找到你的问题的解决方案。您使用“事件总线”(HandlerManager 的共享实例)并激发您的自定义 PetDetailsChangedEvent 事件并从您的子窗口小部件中监听该事件(第 45 页)。另外,请记住,虽然解耦等很好,但一些耦合并不是坏事,实际上可能是比试图强制所有事物松散耦合更好的解决方案 - RR 在该演示文稿中如是说他自己:)

关于java - MVP 和 GWT 小部件之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2163047/

相关文章:

java - 根据条件调用特定方法

java - 选择相同日期 GWT 后日期选择器不会关闭

java - 如何在 JSNI 中使用 GWT $entry 函数?

c# - 在 NHibernate 中映射私有(private)字段(使用 Fluent NH)

c# - 设计具有可以使用附加属性扩展的实体的应用程序的最佳方法是什么?

java - 如何更改抽屉导航部分标题的颜色

java - 如何解释我的 twitter4J 错误?

java - 在我的库中包含一个 "internal"包对我来说是不好的做法吗?

javascript - 启动 html/jsp 与 GWT 模块通信的最佳方式

architecture - 在网络上为业务定义实时