我想在我的netbeans平台模块化应用程序中使用中介设计模式(http://en.wikipedia.org/wiki/Mediator_pattern)。然而,我不确定如何在启动时做到这一点,因为似乎没有一个好方法来创建我的中介,然后将其注入每个模块。
有谁知道这样做的好方法吗?我必须求助于使用查找API或其他东西吗?
当谈到NetBeans平台和模块间通信时,大多数答案归结为查找:)
使用您提供的示例代码,我将执行以下操作@ServiceProvider(service = Mediator.class)
class Mediator{..}
ServiceProvider注释是对ServiceLoader机制的NetBeans扩展,它可以自动将值放入META-INF/services文件夹中。
ButtonView类将被修改如下
class BtnView extends JButton implements Command {
Mediator med = Lookup.getDefault().lookup(Mediator.class);
BtnView(ActionListener al, Mediator m) {
super("View");
addActionListener(al);
med = m;
med.registerView(this);
}
public void execute() {
med.view();
}
}
我不是很熟悉Mediator模式,所以我希望我的理解能达到您理解示例的要求。
有关更多示例,请参阅这些站点
- NetBeans平台快速入门
- NetBeans平台-如何将一个类注册为多个服务的提供者
- NetBeans查找解释
- NetBeans开发者常见问题解答-查找