设计模式
2021-03-04 13:59:29 11 举报
AI智能生成
设计模式
作者其他创作
大纲/内容
设计模式
封装算法
模板方法模式
提供算法步骤的模板
由子类实现某些具体算法
可提供钩子函数
采用继承方式
封装行为
策略模式
将某种行为定义为接口
将某种行为的实现方式为具体类
使用组合方式
封装状态
状态模式
将所有动作封装到一个抽象类
将所有状态实现为一个具体类
每个状态类实现自己对于不同动作的方法
根据内部状态改变行为
解耦对象数据依靠
观察者模式
主题:需要通知那些观察者?
主题提供注册接口
主题:如何通知观察者?
观察者提供更新函数
数据传送方式
推
在观察者更新函数中传递
拉
观察者调用主题相关接口获取
扩展新行为
装饰者模式
装饰者与被装饰者为同一类型
装饰者拥有被装饰者引用
装饰者依赖于被装饰者实现某些行为
装饰者添加行为
装饰者依然可以被装饰
封装接口
适配器模式
适配器与目标对象同类型
适配器包含被适配对象应用
适配器委托被适配对象完成目标对象功能
类适配器,使用多重继承
外观模式
简化接口,委托其他类执行
可包含多各类
复合模式
M(module)模型
C(controller)控制器
V(view)视图
组合模式
封装访问
代理模式
客户端:stub提供服务端接口
服务端:skeleton提供客户端接口
stub与skeleton中间通过某种方式通信
使用场景
和远程对象交互
远程代理
访问实例化开销大的对象
虚拟代理
控制访问
保护代理
缓存、同步、防火墙、写入时复刻
封装对象集合
迭代器模式
集合提供获取迭代器对象方法
迭代器对象提供遍历相关函数
hasNext()
next()
remove()
采用树状结构管理多个对象
对外屏蔽内部结构,提供统一方法
封装调用
命令模式
命令对象包含包含执行者
命令对象提供EXECUTE接口,调用执行者动作
调用者提供设置命令接口,保存命令对象
调用者调用命令对象EXECUTE接口
实现撤销
命令对象提供undo接口
实现宏指令
包含多个执行者
实现命令队列、线程池、日志
保证只有一个实例
单件模式
私有化构造函数
根据需要,处理复制构造与赋值构造
提供static实例化函数
保存指向实际对象的指针
多线程问题
同步实例化函数
急切话创建实例
双重检查加锁
封装对象创建
简单工厂模式
创建者类提供创建产品类的方法
创建产品类的方法返回实际产品类对象
简单工厂作为其他对象使用的对象
工厂模式
定义创建产品类的方法接口
可能包含其他步骤
由子类决定创建何种产品
使用工厂的类,继承工厂
抽象工厂模式
定义一组创建产品类的方法接口
通过工厂模式实现每个创建接口
使用组合来利用抽象工厂
0 条评论
下一页