Behavior Patterns-行为型模式

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			视图			生成页面,表现逻辑

备忘录模式

你可能感兴趣的:(JVMAndJDP)