gpt4 book ai didi

java - 如何理解我的类的属性是否发生了变化

转载 作者:搜寻专家 更新时间:2023-11-01 03:56:43 25 4
gpt4 key购买 nike

我有以下类(class)

public class A {
private int number;

public int getNumber(){
return number;
}
public void setNumber(int number){
this.number = number;
}
}

然后是 B 类,它的属性是 A 类的对象。

public class B {
private A member;

public A getMember() {
return member;
}
public void setMember(A member) {
this.member = member;
}
}

我想做的是当 A 类中的整数发生变化时通知 B 类。

我希望在不使用 Observable 和 Observer 的情况下拥有通知机制。有任何想法吗 ?除了观察者模式还有什么合适的模式吗?

编辑:我不想再次使用观察者的原因是因为 B 类已经扩展了 java.util.Observable 而我的最终目标是让 B 类的观察者知道

private member A;

最佳答案

将类 A 声明为接口(interface),并在 B 中返回该接口(interface)的内部委托(delegate)实现(代理模式)。

像这样

public interface A {
void setNumber(int n);
int getNumber();
}

public class B {
private A member;
private class AImpl implements A {
public void setNumber(int n) {
member.setNumber(n);
notifyB();
}
public int getNumber() {
int res = member.getNumber();
notifyB();
return res;
}
}
public A getMember() {
return new AImpl();
}
public void setMember(A member) {
this.member = member;
}
private void notifyB() {
// notification
}
}

您也可以使用 Proxy 类,但接口(interface)是执行此操作的首选方法。

关于java - 如何理解我的类的属性是否发生了变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24262045/

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