java观察者模式的疑问

zwl_yuyang 2013-12-12 07:54:28
被观察者发生变化的时候通知观察者,观察者执行相关方法。跟被观察者发生变化后自己调用方法用什么不同。优点在哪里。如注释掉的两行和下面的两行有啥不同。
例:
import java.util.Observable;
import java.util.Observer;

public class Test {
public static void main(String[] args) {
NumObservable number = new NumObservable();
number.addObserver(new NumObserver());
number.setData(1);
number.setData(2);
number.setData(3);
}
}

class NumObservable extends Observable {
private int data = 0;

public int getData() {
return data;
}

public void setData(int i) {
data = i;
// setChanged();
// notifyObservers();
NumObserver no = new NumObserver();
no.update(this, 1);
}
}

class NumObserver implements Observer {
public void update(Observable o, Object arg) {
NumObservable myObserable = (NumObservable) o;
System.out.println("Data has changed to " + myObserable.getData());
}
}
...全文
105 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwl_yuyang 2013-12-13
  • 打赏
  • 举报
回复
msj100ff 2013-12-12
  • 打赏
  • 举报
回复
在里面new岂不是白费了设计模式,设计模式解决问题的本质就是解耦,new在里面就是写死了 如果此时增加了另一种观察者,按你写的就没办法去通知被观察者

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧