当前位置: 首页 > 知识库问答 >
问题:

GWT活动巴士有哪些好处

戚鸿福
2023-03-14

我很难理解在GWT中使用事件总线概念的好处。我知道它是怎么做的,但我不明白为什么它有帮助。

我举个例子:

Button button = new Button("click");
 button.addListener(new ButtonListenerAdapter(){
    @Override
    public void onClick(Button button, EventObject e) {
        doSomething() ;// must replace it with fireEvent  later :(
    }

});

为了将事件总线功能添加到上面的代码中,我们必须引入更多的代码:

1) 创建扩展event的事件类(实现2个方法)

2)为事件处理程序创建接口,其中dosomething()将是抽象的

3)实现接口

4)事件发生的类必须实现HasHandler接口、intreoduce HandlerManager实例、实现fireEvent、注册事件并触发事件。

现在我的问题是,如果我有50个UI事件,我看不到重复上面4个步骤的好处。如果我不这样做,我将面临的真正问题是什么。

编辑:

事实是

AddContactEvent.java
AddContactEventHandler.java
RemoveContactEvent.java
RemoveContactEventHandler.java

共有1个答案

岑元徽
2023-03-14

无活动总线

例子:你可以直接从农场买苹果。

Button维护侦听器的集合。Button知道所有侦听器,需要在循环中通知它们。Button直接与处理程序耦合。

事件总线

示例:您从商店购买苹果,商店从农场购买苹果。商店是您和农场之间的经纪人。您不知道农场。农场不知道你。

事件总线是事件生产者和事件使用者之间的代理。事件创建者知道事件总线,但不是所有事件使用者。

按钮不知道侦听器。它只知道事件总线。处理程序不知道按钮。他们知道公共汽车。

总结:

没有插件的应用程序可以在没有事件总线的情况下实现。

具有插件支持的应用程序应该使用事件总线实现,因为之前不知道有多少插件连接到事件生产者。

 类似资料:
  • 我正在GWT中创建一个类似MVP的应用程序。 有多个面板,每一个都是随时可见的。 每个面板都有一个Presenter,并且有一个AppController位于所有Presenter之上。 有一些应用程序级别的事件出现在一个演示者中,但对其他演示者有影响。 为此建议的架构似乎涉及事件总线。然而,我不确定我是否看到了比更简单的东西更有优势。 特别是,简单地允许AppController(并且只有App

  • 本文向大家介绍OOCSS有哪些好处?对应的库有哪些?相关面试题,主要包含被问及OOCSS有哪些好处?对应的库有哪些?时的应答技巧和注意事项,需要的朋友参考一下 有语义的类名,逻辑性强的层次关系 可重用,样式和结构的分离,容器和内容的分离 Kite 参考文章 参考文章

  • 本文向大家介绍使用NPM有哪些好处?相关面试题,主要包含被问及使用NPM有哪些好处?时的应答技巧和注意事项,需要的朋友参考一下 通过NPM,你可以安装和管理项目的依赖,并且能够指明依赖项的具体版本号。对于Node应用开发而言,你可以通过文件来管理项目信息,配置脚本,以及指明依赖的具体版本   This command locks down the versions of a package’s d

  • 本文向大家介绍Java 泛型有哪些好处详解,包括了Java 泛型有哪些好处详解的使用技巧和注意事项,需要的朋友参考一下 java 泛型 概要:        Java 泛型是java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。          泛型(Generic typ

  • 我们正在使用spring云配置服务器。Spring配置客户端使用Spring控制总线(RabbitMQ)获取更新。 看起来每个配置客户端实例都会创建一个连接到'spring.cloud.bus'交换的队列。 对有多少应用程序实例可以连接到“spring.cloud.bus”交换有任何可伸缩性限制? 我想RabbitMQ可以扩展来处理这个问题。 寻找这方面的指导方针。 许多感谢,

  • 本文向大家介绍ASP net core有哪些好的功能?相关面试题,主要包含被问及ASP net core有哪些好的功能?时的应答技巧和注意事项,需要的朋友参考一下 第一是依赖注入。 第二是日志系统架构。 第三是引入了一个跨平台的网络服务器,kestrel。可以没有iis, apache和nginx就可以单独运行。 第四是可以使用命令行创建应用。 第五是使用APP settings json fil