设计模式学习笔记(五) - 观察者模式 Observer

目录

观察者模式 Observer

一、背景描述

Version 1 (面向过程)

Version 2 (面向对象)

Version 3 (单个观察者)

Version 4 (多个观察者)

Version 5 (分离观察者与被观察者)

二、不同事件下的观察者模式

三、事件本身也可以形成继承体系

四、观察者常用场景


观察者模式 Observer

一、背景描述

小孩哭了就喂

Version 1 (面向过程)

设计模式学习笔记(五) - 观察者模式 Observer_第1张图片

Version 2 (面向对象)

设计模式学习笔记(五) - 观察者模式 Observer_第2张图片

设计模式学习笔记(五) - 观察者模式 Observer_第3张图片

Version 3 (单个观察者)

耦合度很高

设计模式学习笔记(五) - 观察者模式 Observer_第4张图片

设计模式学习笔记(五) - 观察者模式 Observer_第5张图片

Version 4 (多个观察者)

依旧耦合度很高,可以有多个观察者,且每个观察者的处理方式不同

设计模式学习笔记(五) - 观察者模式 Observer_第6张图片

Version 5 (分离观察者与被观察者)

定义Observer接口,分离观察者与被观察者

设计模式学习笔记(五) - 观察者模式 Observer_第7张图片

设计模式学习笔记(五) - 观察者模式 Observer_第8张图片


二、不同事件下的观察者模式

同一个事件在不同的类似时间地点条件下需做出不同的Action

设计模式学习笔记(五) - 观察者模式 Observer_第9张图片设计模式学习笔记(五) - 观察者模式 Observer_第10张图片


 

三、事件本身也可以形成继承体系

设计模式学习笔记(五) - 观察者模式 Observer_第11张图片

设计模式学习笔记(五) - 观察者模式 Observer_第12张图片

设计模式学习笔记(五) - 观察者模式 Observer_第13张图片设计模式学习笔记(五) - 观察者模式 Observer_第14张图片


四、观察者常用场景

  • Listener
  • Hook
  • Callback

 

 

 

 

 

 

 

 

你可能感兴趣的:(设计模式学习笔记,设计模式,学习,观察者模式)