gpt4 book ai didi

design-patterns - Java API观察者模式 :subject if extended

转载 作者:行者123 更新时间:2023-12-01 12:20:10 26 4
gpt4 key购买 nike

在 Java 内置的观察者模式 API 中,我们必须扩展 Observable 类来成为\实现“主题”。我想知道我扩展实现“Observable”的类是否也会成为“Subject\Observable”,如果是这样,它会继承父级的所有观察者吗?

例如:A 类扩展了 Observable

B 类扩展了 A

那么 B 也是 Observable/subject?

最佳答案

是的,你完全正确。如果 A 类扩展了 Observable 并且 B 类扩展了 A,那么 B 类就会成为 Observable。您应该能够使用下面的示例测试代码来测试它。

import java.util.Observable;

import java.util.Observer;

public class TestObserve extends Object {
MyView view;
TestObservableA testObservableA;
TestObservableB testObservableB;
public TestObserve() {

view = new MyView();

testObservableA = new TestObservableA();
testObservableA.addObserver(view);

testObservableB = new TestObservableB();
testObservableB.addObserver(view);
}

public static void main(String[] av) {
TestObserve testObserve = new TestObserve();
testObserve.testExtend();
}

public void testExtend() {
testObservableA.changeSomething();
testObservableB.changeSomething();
}

class MyView implements Observer {
public void update(Observable observable, Object x) {
System.out.println("Test Update(" + observable + "," + x + ");");
}
}

class TestObservableA extends Observable {
public void changeSomething() {
setChanged();
notifyObservers();
}
}

class TestObservableB extends TestObservableA {
public void changeSomething() {
setChanged();
notifyObservers();
}
}
}

关于design-patterns - Java API观察者模式 :subject if extended,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26723820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com