我目前的自定义小部件流程如下:
我的听众会触发细粒度的事件,例如onEntityDisplayRequested(Entity entity)
,因此我无法使用股票监听器。
虽然这实现了小部件的低耦合并允许重复使用,但它非常冗长。有没有更好的方法来处理自定义小部件的设计?
答案 0 :(得分:3)
每个新窗口小部件都不需要单独的侦听器接口。例如。 ClickListener由各种不同的窗口小部件类使用。显然,一些自定义小部件需要一个新的监听器类型,但这不应该是自动的。
答案 1 :(得分:2)
我认为Java不久前遇到了同样的问题,解决方案就是拥有PropertyChange事件。他们来了 - PropertyEvent,包含源,属性名称和旧的+新值 - 一个PropertyChangeListener - 一个PropertyChangeSupport,您可以委派事件触发,以及注册和取消注册侦听器。
你松散了一点特异性(事件的名称与字符串相匹配),但你仍然可以触发细粒度事件并获得一些外部类支持。
我没有在GWT中广泛使用这个,所以我不能评论效率方面。