适配器模式之观察者模式
2016-10-06 14:06
169 查看
设计模式目录
http://blog.csdn.net/fenglailea/article/details/52733435
风.fox
定义被观察者必须实现的职责,它必须能够动态地增加、取消观察者。他一般是抽象类或者实现类,仅仅完成作为被观察者必须实现的职责:管理观察者并通知观察者
观察者 Observer
观察者接收到消息后,即进行update(更新方法)操作,对接收到的信息进行处理
具体的被观察者 ConcreteSubject
定义被观察者自己的业务逻辑,同时定义对哪些事件进行通知
具体的观察者 ConcreteObserver
每个观察者在接收到消息后的处理反应是不同,每个观察者有自己的处理逻辑
建立一套触发机制
事件多级触发场景
跨系统的消息交换场景,如消息队列
http://blog.csdn.net/fenglailea/article/details/52733435
风.fox
观察者模式
定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新通用类图
组成
被观察者 Subject定义被观察者必须实现的职责,它必须能够动态地增加、取消观察者。他一般是抽象类或者实现类,仅仅完成作为被观察者必须实现的职责:管理观察者并通知观察者
观察者 Observer
观察者接收到消息后,即进行update(更新方法)操作,对接收到的信息进行处理
具体的被观察者 ConcreteSubject
定义被观察者自己的业务逻辑,同时定义对哪些事件进行通知
具体的观察者 ConcreteObserver
每个观察者在接收到消息后的处理反应是不同,每个观察者有自己的处理逻辑
通用源码
JAVA//被观察者 public abstract class Subject{ //定义一个观察者组 private Vector<Observer> obsVector =new Vector<Observer>(); //增加一个观察者 public void addObserver(Observer o){ this.obsVector=o; } //删除一个观察者 public void delObserver(Observer o){ this.obsVector.remove(o); } //通知所有观察者 public void notifyObservers(){ for(Observer o:this.obsVector){ o.uodate(); } } //具体的被观察者 public cass ConcreateSubject extends Subject{ //具体业务 public void doSomething(){ // super.notifyObservers(); } } //观察者 public interface Observer{ //更新 public void update(); } //具体的观察者 public class ConcreteObserver implements Observer{ //更新 public void update(){ System.out.println("我已经接收到消息啦,并且已经进行处理"); } } //场景 public class Client{ public static void main(Sting[] args){ //创建一个被观察者 ConcreteSubject subject = new ConcreteSubject(); //定义一个观察者 ConcreteObserver obs=new ConcreteObserver(); //观察者被观察 subject.addObserver(obs); //观察者开始活动了 subject.doSomething(); }
优点
观察者和被观察者之间是抽象耦合建立一套触发机制
使用场景
关联行为场景。需要注意的是,关联行为是可以拆分的,而不是“组合”关系事件多级触发场景
跨系统的消息交换场景,如消息队列
相关文章推荐
- IOS设计模式之三(适配器模式,观察者模式)
- iOS设计模式之三(适配器模式,观察者模式)
- 慕课网----大话PHP设计模式 四(适配器模式,数据对象映射模式,观察者模式)
- NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
- 观察者模式,适配器模式,策略模式
- 设计模式--单例模式,观察者模式,适配器模式
- php设计模式专题附源码(适配器模式、模板模式、命令模式、单例模式、观察者模式)
- IOS设计模式之三(适配器模式,观察者模式)
- IOS设计模式之三(适配器模式,观察者模式)
- iOS设计模式之三:适配器模式和观察者模式
- IOS设计模式之三(适配器模式,观察者模式)
- Java学习笔记(十)观察者模式及适配器模式
- IOS设计模式之三(适配器模式,观察者模式)
- iOS设计模式之三(适配器模式,观察者模式)
- IOS 设计模式之三:(适配器模式 观察者 KVO)
- IOS设计模式之三(适配器模式,观察者模式)
- 【iOS开发】适配器模式与观察者模式
- IOS设计模式之三(适配器模式,观察者模式)
- IOS设计模式之三(适配器模式,观察者模式)
- 大话设计模式(三)建造者模式 观察者模式 抽象工厂模式 状态模式 适配器模式 备忘录模式