2011-11-04 174 views
1

如果我有一个GUI构建器,它构建了我的第一个接口,并且该接口附加了一个观察器,该观察器检测该接口中的某个字段何时更新,然后我必须执行以下操作之一;观察者模式混淆

1)从构建器创建接口1,然后附加一个观察者,以便构建者可以知道某个任务何时完成 2)我只是创建一个观察者,然后观察者创建接口?

基本上我试图从生成器创建一个接口,然后,在点击按钮上去获取一些数据。当检索到这个数据时,我想让构建器类知道它可以继续使用它来构建接口2.我正在尝试使用观察器设计模式来执行此操作。

感谢

回答

3

您应该创建界面,然后添加(或注册/附后)有关观察员之后。像(在伪代码中);

GUI mygui = GUIBuilder.createNewGUI(); 

ButtonListener OK = new OKButtonListener(); 
ButtonListener Cancel = new CancelButtonListener(); 
DataListener dataReady = new dataReadyListener(); 

mygui.registerButtonListener(OK); 
mygui.registerButtonListener(Cancel); 
mygui.registerDataListener(dataReady); 

mygui.show(); 

如果你正在建设都将附加相同的听众图形用户界面,可以让界面生成器创建和附加侦听器的你。

+0

对这里缺乏理解感到抱歉,但是这一切都在建设者类中进行。我只是担心,建设者阶层的听众违反责任驱动设计 – Biscuit128

+0

XXXListener类是观察员。 mygui是可观察的。 – Robin

+0

所以我们有一个观察者类用于我们要监视的每个控件? – Biscuit128