Behavior Patterns-行为型模式
- 概念
-
- 一、类模式
-
- 二、对象模式
-
- 状态模式
- 策略模式
- 命令模式
- 责任链模式
- 迭代器模式
- 访问者模式
- 中介者模式
- 观察者模式
- 备忘录模式
概念
一、定义
分类
[一]类模式
[1]模板模式 Template Pattern
[2]解释器模式 Interpreter Pattern
[二]对象模式
[1]策略模式 Strategy Pattern
[2]状态模式 State Pattern
[3]命令模式 Command Pattern
[4]责任链模式 Chain of Responsibilty
[5]迭代器模式 Iterator Pattern
[6]访问者模式 Visitor Pattern
[7]观察者模式 Observer Pattern
[8]中介者模式 Mediator Pattern
[9]备忘录模式 Mementor Pattern
一、类模式
模板模式
定义
[1]基类 定义模板方法
[2]子类 覆盖模板方法
属性 类-单继承
目的 分离方法结构、方法内容
实现 不去改变方法结构,重置方法内容
应用 代码重构、BaseResponse、Junit
区别
[1]Template 静态 编译期
[2]State 动态 运行期
[3]Strategy 动态 运行期
解释器模式
定义
目的 语言转义
属性
应用 SpringMVC:视图解析器;持久层解释器:XML转换SQL
二、对象模式
状态模式
定义
目的 状态添加、转换 对象状态,转换直到条件
角色
[1]StateManager 状态管理方 基类 管理State类
[2]ConcereateState 状态集中方 基类 派生State类[ConcereateState 列类]
[3]State 状态逻辑方
应用 多个状态,不同逻辑
[1]替代条件语句:if-else、switch;State子类封装条件分支
流程
[1]分割状态 状态确定行为
[2]
策略模式
定义
目的 分离调用时机,算法规则
角色
[0]算法调用类
[1]Context
[2]算法基类 业务逻辑 封装业务
[3]算法子类 算法逻辑 封装算法
应用 Excel中,录入数据,生成统计数据:全量数据-数据原值,增量数据-数据差值
区别
[1]State Context 实例化特殊的算法类 封装状态、行为不同,切换频率高
[2]Strategy StateManager实例化所有的处理类 封装算法、行为相同,切换频率低
命令模式
定义
属性 接口-多继承,激活接口=响应开关
应用
[1]Servlet 分离处理逻辑、激发逻辑
激发函数doGet()、doPost(),激发逻辑封装在配置文件
[2]Junit
区别
[1]Chain 责任链模式 处理激发顺序 相同Request
[2]Command 命令模式 处理激发时机 不同Request
责任链模式
定义 继承责任链接口[组成响应链]
属性 接口-多继承,添加处理对象
目的 组成链式处理流程
角色
[1]请求类 对象
[2]响应链 接口 添加、激发处理类
[3]处理类 实现类 处理请求类
应用
[1]Servlet 动态响应,传递Request多个Servlet
[2]Filter
迭代器模式
定义
角色
目的 遍历数据集合,分离算法、过程
属性 接口-多继承
应用 Iterator接口
访问者模式
定义
目的 遍历对象、处理对象
属性 接口-多继承
应用
[1]JDBC 消除冗余代码=数据处理
[2]SpringIoC 处理逻辑封装至Bean,Spring框架负责初始化,释放资源,执行SQL,遍历数据集合
区别
[1]Iterator 迭代器模式 数据读取模式-拉模型,利用继承处理
[2]Visitor 访问者模式 数据读取模式-推模式,利用多态处理
中介者模式
定义
目的 隔离通信 [模块、类]
属性
应用
区别
[1]Factory 创建、初始化类
[2]Facade
[3]Mediator
观察者模式
定义
目的 增加数据表现形式,反映数据变更 Subject:Observers = 1:n
[1]分离数据逻辑、表现逻辑 解耦合
[2]Subject操作数据,Observers相应改变
属性
角色
[1]Subject 主题对象 接口 注册接口:Observers注册到Subject
[2]Observer 观察者 接口 实现接口:实现类Observers
[3]通知者 通知方法遍历观察者,
应用 MVC
[一]Spring-MVC
[二]Struts-MVC
[1]Controller 控制器 分离模型、视图
请求解释、数据校验、请求分发、
异常处理、日志记录、安全认证、页面跳转
[2]Model 模型 执行业务,数据逻辑
[3]View 视图 生成页面,表现逻辑
备忘录模式