利用观察者模式实现通知
来源:互联网 发布:最优化例题 编辑:程序博客网 时间:2024/06/09 16:55
public class TestObserverMutex {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("start");
ObservableA obsA = new ObservableA();
obsA.addObserver(new Observer1());
obsA.addObserver(new Observer2());
for(int i = 0; i<100; i++){
obsA.setA(i);
}
System.out.println("end");
}
static class ObservableA extends Observable{
int flag = 1;
private int a;
public void setA(int a){
flag++;
this.a = a;
setChanged();
notifyObservers();
}
public int getA(){
return a;
}
}
static class Observer1 implements Observer{
@Override
public void update(Observable arg0, Object arg1) {
ObservableA obsA = (ObservableA)arg0;
if(obsA.flag%2 == 0){
System.out.println("aaaaaa==" + obsA.getA());
}
}
}
static class Observer2 implements Observer{
@Override
public void update(Observable arg0, Object arg1) {
ObservableA obsA = (ObservableA)arg0;
if(obsA.flag%2 == 1){
System.out.println("bbbbbb==" + obsA.getA());
}
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("start");
ObservableA obsA = new ObservableA();
obsA.addObserver(new Observer1());
obsA.addObserver(new Observer2());
for(int i = 0; i<100; i++){
obsA.setA(i);
}
System.out.println("end");
}
static class ObservableA extends Observable{
int flag = 1;
private int a;
public void setA(int a){
flag++;
this.a = a;
setChanged();
notifyObservers();
}
public int getA(){
return a;
}
}
static class Observer1 implements Observer{
@Override
public void update(Observable arg0, Object arg1) {
ObservableA obsA = (ObservableA)arg0;
if(obsA.flag%2 == 0){
System.out.println("aaaaaa==" + obsA.getA());
}
}
}
static class Observer2 implements Observer{
@Override
public void update(Observable arg0, Object arg1) {
ObservableA obsA = (ObservableA)arg0;
if(obsA.flag%2 == 1){
System.out.println("bbbbbb==" + obsA.getA());
}
}
}
}
0 0
- 利用观察者模式实现通知
- 利用委托加观察者模式实现老板状态变化通知C++
- 观察者模式 - 通知/KVO
- 利用 SPL 快速实现 观察者设计模式
- 利用Observable、Observer实现观察者模式
- 利用Spring实现观察者模式(Oberver)
- WCF中使用观察者模式实现事件通知
- 观察者模式实现老板状态变化通知 C++
- NIO +观察者模式 文件通知
- 通知中心与观察者模式
- 利用观察者模式(发布/订阅模式)制作一个“代替”广播的通知类
- C#中利用代理实现观察者设计模式
- C#中利用代理实现观察者设计模式
- 利用观察者模式实现Service与Activity的通信
- 利用观察者模式实现data和ui的独立演化
- 利用接口实现自定义监听事件以及观察者模式
- Java利用listener实现回调,即观察者模式
- IOS观察者模式与通知中心
- 杭电 1008 Elevator
- OpenGL: 平面阴影投射矩阵的推导
- Android NavigationBar中虚拟键调查
- linux grep命令
- mysql存储过程
- 利用观察者模式实现通知
- [IOS]TableView Cell重用机制及TableView方法说明
- css div的水平、垂直同时居中
- Struts2 使用annotation从action跳转到action并传递参数
- 第六周作业
- 同步中,为什么要wait,又notify谁?
- Android中设置全屏的方法
- 线段树-HDU1394Minimum Inversion Number
- 安卓经典效果组件篇6——自定义底部Tab控件