观察者模式简单实现
来源:互联网 发布:软件开发安全管理规范 编辑:程序博客网 时间:2024/05/20 11:36
简单来说观察者模式是指被观察对象在状态变化时,主动通知观察者
下面是一个简单的实现
public class Subject { private List<Observer> observers = new ArrayList<>(); private int state; public void setState(int state) { if (this.state == state) { return; } this.state = state; notifyAllObservers(); } public int getState() { return state; } public void attach(Observer observer) { observers.add(observer); } private void notifyAllObservers() { observers.stream().forEach(o -> o.update()); }}
Subject,即被关察的对象。持有一个所有观察者的list,和notifyAllObserver的方法用于在状态改变时通知。
public abstract class Observer { protected Subject subject; public Observer(Subject subject) { this.subject = subject; } public abstract void update();}
观察者父类。有一个update方法,用于向Subject提供通知入口。在构造函数中向Subject中绑定。
public class BinaryObserver extends Observer { public BinaryObserver(Subject subject) { super(subject); subject.attach(this); } @Override public void update() { System.out.println("BinaryObserver " + Integer.toBinaryString(subject.getState())); }}
Observer的一个实现类。
测试
public class ObserverTest { public static void main(String[] args) { Subject subject = new Subject(); BinaryObserver observer = new BinaryObserver(subject); subject.setState(3); subject.setState(4); subject.setState(4); }}
结果
BinaryObserver 11BinaryObserver 100
阅读全文
0 0
- 观察者模式简单实现
- 观察者模式的简单实现
- 观察者模式实现简单聊天
- C++ 实现简单观察者模式
- js观察者模式简单实现
- 简单实现的观察者模式
- Android观察者模式简单实现
- 观察者模式(简单的实现)
- 一个简单观察者模式的实现 cocos2dx
- 观察者模式java的简单实现
- KVO 观察者模式及简单实现
- 最简单的观察者模式实现
- RCTDeviceEventEmitter 实现简单的观察者模式
- Android观察者模式的简单实现demo
- Android观察者模式的简单实现demo
- javamail实现发送邮件并简单实现观察者模式
- 简单观察者模式
- 简单观察者模式
- k-近邻算法(二)
- Material Design控件之Toolbar
- STM8S_007_片内FLASH和EEPROM编程
- PyQt5学习教程13:输入对话框的使用
- HUD 2094 产生冠军
- 观察者模式简单实现
- 重磅!阿里云栖大会全部PPT+视频下载放送
- DrawerLayout,Toolbar,NavigationView实现侧滑的基本使用
- 2.1 key命令
- 第九周LeetCode算法题两道
- ubuntu14.04强制中断更新后出现登录界面死循环
- Python入门——环境搭建
- 【内存优化】 Android 内存优化---概念、定位常用手段跟重要内存优化点
- DOM节点的增加,删除,修改,查找