GOF之行为型模式Ⅰ(重点)

责任链模式(chain of responsbility)

职能:将能处理同一类请求的对象连接成一条线,所提交的请求沿链传递

组件:
Handler:抽象处理类,声明处理方法
ConcreteHandler:具体处理类,判断权限,进行处理
实例:java异常机制,Servlet中过滤器的链式处理,Struts2中拦截器的调用
UML:
在这里插入图片描述

迭代器模式(iterator(游标模式 cursor))

职能:提供一种可以遍历对象的方式

组件:
Aggregate:实现接口,聚合对象,进行数据的存储
Iterator:实现接口,迭代器,遍历数据,一般定义为内部类,只为一个特定的类提供服务

UML:
在这里插入图片描述

中介者模式 Mediator

职能:解耦多个对象之间的交互关系,使用中介者对象统一管理这些交互关系

两种对象:
①同事对象,一个系统中对象之间关系为网状结构,存在大量多对多关系,导致关系十分复杂
②中介者对象,使得同事对象只与中介者对象打交道,变为一对多关系,降低复杂度

组件:
Mediator:抽象中介者
Colleague:抽象同事类
ConcreteMediator:具体中介者,负责和各个同事类交互
ConcreteColleague:持有中介者的对象,和中介者进行交互
实例:MVC中的C(控制器),反射中的invoke()

UML:
在这里插入图片描述

命令模式(Command)

职能:将一个请求封装为一个对象,使得不同的请求对客户进行参数化

组件:
Command:抽象命令类
ConcreteCommand:具体命令类
Invoker:调用者/请求者
Receiver:接收者
实例:Structs2中action的调用过程,数据库事物机制的底层实现
UML:
在这里插入图片描述

状态模式

职能:用来解决系统中复杂对象的状态转换以及不同状态下行为的封装

组件:
Context:环境类,持有当前状态
State:抽象状态类
ConcreteState:具体状态类,每一个类都封装了一个状态应得行为

实例:线程对象各状态间得转换

UML:
在这里插入图片描述
PS:策略模式和状态模式
策略:需在每次调用时,外部进行指定
状态:只需指定初始状态,内部进行自动切换

发布了82 篇原创文章 · 获赞 1 · 访问量 1473

猜你喜欢

转载自blog.csdn.net/qq_41891805/article/details/104727066