使用Mediator模式的Netbeans平台项目 - 有可能吗?

时间:2011-07-16 03:37:22

标签: java design-patterns netbeans netbeans-platform mediator

我想在我的netbeans平台模块化应用程序中使用中介设计模式(http://en.wikipedia.org/wiki/Mediator_pattern)。但是,我不确定如何在启动时执行此操作,因为似乎没有一种好方法来创建我的介体然后将其注入每个模块。

有谁知道这样做的好方法?我是否必须使用Lookup API?

1 个答案:

答案 0 :(得分:3)

对于NetBeans平台和模块间通信,大多数答案归结为查找:)

使用您提供的示例代码,我将执行以下操作

@ServiceProvider(service = Mediator.class)
class Mediator{..}

ServiceProvider注释是ServiceLoader mechanism的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模式并不是很熟悉,所以我希望我的理解能够在你理解这个例子的过程中得到充分的理解。

有关更多示例,请参阅这些网站