【发布时间】:2014-04-25 22:57:56
【问题描述】:
在观察者设计模式中,我知道我们必须向主题注册观察者。但是我注意到在某些实现中,主题实例是通过观察者类发送的,然后观察者的对象使用主题的实例发送到主题类。请看下面的例子
public class Observer1 extends Observer {
public Observer1(Subject subject) {
this.subject = subject;
this.subject.attach(this);
}
@Override
public void update() {
System.out.println("Observer1: "
+ Integer.toBinaryString(subject.getState()));
}
}
我的问题是 Observer 类是否需要有主题实例?我认为观察者与主题完全脱钩
谁能给我一个很好的观察者设计模式或任何资源的实现
【问题讨论】:
-
在观察者模式的正确实现中,观察者和主体是“松散耦合的”,而不是“完全解耦的”。这个例子显示了强耦合,这意味着它是一个糟糕的实现。
标签: java design-patterns