在观察者设计模式中,我知道我们必须向主题注册观察者。但我注意到,在某些实现中,主题实例是通过观察者类发送的,然后观察者的对象使用主题实例发送到主题类。看下面的例子
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 与主题完全脱钩
谁能给我一个很好的观察者设计模式或任何资源的实现
最佳答案
理论上,Observer 不需要在字段中保留 Observable 对象(您称之为“Subject”)的引用,因为 Observer 通常已经接收 Observable 对象作为更新方法的参数。
关于java - 将观察者与主题耦合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23295264/