B类中值一变化A就得到这个变化的值,我知道应该是用观察者模式来实现,但不知道具体的方法
public class B{
private int a;
private OnAUpdateListener onAUpdateListener;
public void setOnAUpdateListener(OnAUpdateListener onAUpdateListener){
this.onAUpdateListener = onAUpdateListener;
}
public void setA(int a){
this.a = a;
}
public interface OnAUpdateListener{
void updateListener(int a);
}
}
public class A implements OnAUpdateListener{
public static void main(String[] args){
B b = new B();
b.setOnAUpdateListener(this);
}
void updateListener(int a){
// B中的变量发生了变化
}
}
观察者模式在Java类库中体现就是监听器,本质上是被监听对象维护一个所有注册监听的对象列表,一旦自己的某些信息发生变化后就通知列表中所有的
观察者,而观察者本身也关联一个被观察的对象,A和B是一对多的关联关系。
参考实例如下:http://www.cnblogs.com/mengdd/archive/2013/02/07/2908929.html
可以看下java源码中监听器相关的类,JDK中有很多设计模式的真实运用的类的。
http://blog.csdn.net/evankaka/article/details/43195971
可以监听
也可以把B做成单例
A每次取的时候就是最新的值了
使用观察者模式就可以实现
监听么,定义监听器,然后在B类set方法里面执行监听器的方法