- 前言
- 一、观察者模式的定义
- 1.1 行为型的设计模式
- 1.2 观察者模式
- 二、观察者模式类比、实现
- 2.1 观察者模式类比_列1(博主更新通知)
- 2.2 观察者模式类比_列2(事件监听机制)
- 2.3类图和实现
- 设计模式系列文章
前言
设计模式是进行实际开发的基石,是前人不断总结试错得出的宝贵开发经验,也是开发人员之间相互理解共同设计的关键标准。学习设计模式能够帮助我们初学者更好理解结构化的开发流程,摆脱只会写一段代码而不能上升为一个项目的不上不下的尴尬处境
一、观察者模式的定义 1.1 行为型的设计模式作为设计模式之行为型模式开篇,观察者模式、或者叫事件-监听器模式无疑是我们接触得最多的,也是用法最广泛的设计模式之一
其核心思想是将监听器注册到事件,当事件发生触发通知监听器触发相应功能(将观察者与被观察者绑定,被观察者改变,通知观察者)
首先明确观察者模式属于 —— 行为型的设计模式:主要负责功能包含父类与子类关系设计、类间信息传递(比如观察者)、表示类状态的设计和中间类完成行为四类设计。
简单的说:行为型设计模式:负责设计类的行为的设计模式(方法分配,消息传递、状态变化、中间件转发)
1.2 观察者模式观察者是实现被观察者(比如键盘点击事件),与观察者(键盘事件监听器)之间信息传递的设计方法,其核心要点在于实现被观察者更新自动通知观察者。
考虑如下设计:
很明显的是:通过循环判断被观察者是否更新(事件是否发生)这种方法会阻塞主程序、空转浪费时间等,问题很大
于是观察者模式诞生了——解决了该类问题:
当被观察者发生或者更新,会自动触发相应观察者的相应函数,而不是由观察者来判断。实现了功能切分和解耦,观察者只负责执行观察结果,被观察者负责通知
具体的设计和实现如下:
二、观察者模式类比、实现 2.1 观察者模式类比_列1(博主更新通知)2.2 观察者模式类比_列2(事件监听机制)现在有一位博主叫代码之狐狸(点击跳转到主页),有位热爱学习的小可爱想要持续获取博主的动态,但是又不可能一直刷新查看,所以他选择了关注,这样每次更新都会通知他啦
2.3类图和实现在期末作业里面常常用到的事件监听机制,具体图解如下,里面的类都是Java核心库里面封装好的XXEvent(事件类)、XXListener(监听类)等:
为了实现解耦:约定使用接口——一个具体的被观察者可以通知多个不同的观察者(只要实现了观察者接口),反之同理。
利用Java类库提供的java.util.Observer和java.util.Observable实现——博主更新通知例子,实现图解如下(具体代码大家可以自己尝试):
一、创建型模式——工厂模式
二、创建型模式——单例模式、原型模式
三、创建型模式——建造者模式
四、结构型模式——装饰者模式
五、结构型模式——代理、适配器模式
六、结构型模式——外观模式
七、结构型模式——三合一(组合模式、桥接模式、享元模式)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)