0

我想在我的应用程序中实现观察者模式。由于我的代码很大,我将总结问题。所以,我必须制作一个管理老板和一些员工之间关系的应用程序。为此,我为老板和员工提供了两个单独的 gui。

当我午餐应用程序时,我创建了两个登录,一个用于老板,一个用于员工。如果boss登录成功,则会创建一个新的Gui Boss框架

如果员工登录成功,则会出现一个新的 Gui 员工。我想做的是为新创建的 Gui Employee 添加一个观察者(Gui Boss)(这是可观察的)。这是我的一些代码,可以更好地解释:

//in Application.java
public static void main(String args[]){
    ........
    LoginBoss lb = new LoginBoss(contrb);  //contrb is boss controller
    lb.setVisible(true);
    LoginEmployee le = new LoginEmployee(contre); //contre is employee controller
    le.setVisible(true);
}

//In LogginBoss.java
//after i check if it's ok i create a new gui boss
guiB = new GuiBoss(contrb,boss);  //contrb is boss controller passed from loggin boss
guiB.setVisible(true);

//In LogginEmployee.java
///after i check if it's ok i create a new gui employee
guiE = new GuiEmployee(contre,employee);
guiE.setVisible(true);
//now i whant to add for guiE an Gui Boss observer, something like guiE.addObserver(guiB);

如果您有任何想法,请告诉我。对不起我的英语。

4

1 回答 1

0

看看这个链接

如果GuiEmployee扩展了观察者模式,你应该做类似的事情:

GuiEmployee watched = new GuiEmployee(var, var);

watched.addObserver(guiB);

watched.changeSomeValue(value);

changeSomeValue方法中,在 GuiEmployee 内部(watched在我的示例中),您必须包含以下语句以通知观察者:

setChanged();
notifyObservers(value);

在调用 setChanged 之前,对 notifyObservers 的调用不会执行任何操作。有关更多信息,请查看此处

于 2013-05-15T10:20:11.500 回答