问题描述
class ConcreteObserver implements Observer {
String text;
public void actualize(Subject subject) {
this.text = subject.getState();
}
}
换句话说,上面的代码是否像我这样做一样使我的 Subject
耦合到 Observer
?
class ConcreteObserver implements Observer {
String text;
Subject subject;
public void actualize() {
this.text = subject.getState();
}
}
解决方法
以下所有关系都算作耦合:
- 协会
- 聚合
- 依赖
- 概括
所以 ConcreteObserver
在这两种情况下都耦合到 Subject
。
(并且在问题 Subject
与 Observer
的耦合中的陈述无话可说)
第二种情况将父Observer
与Subject
解耦,
但 IMO 显式依赖比用隐式伪造作用域要好。