设计模式---行为型

行为型

责任链(Chain Of Responsibility)

定义

使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象形成一条链,并沿着这条链发送该请求,直到有一个对象处理它为止。

mark

责任链模式有点像JVM的双亲委派模型

命令

定义

将命令封装成对象中,具有以下作用:

  • 使用命令来参数化其他对象
  • 将命令放入队列中进行排队
  • 将命令的操作记录到日志中
  • 支持可撤销的操作

mark

解释器(Interpreter)

定义

为语言创建解释器,通常由语言的语义和语法分析来定义

mark

迭代器(Iterator)

定义

提供一种顺序访问聚合对象元素的方法,并且不暴露聚合对象的内部表示

mark

中介者(Mediator)

定义

集中相关对象之间复杂的沟通和控制方式

mark

备忘录(Memento)

定义

在不违反封装的情况下获得对象的内部状态,从而在需要时可以将对象恢复到最初状态

mark

观察者模式(Observer)

定义

定义对象之间的一对多依赖,当一个对象状态改变时,它的所有依赖都会收到通知并且自动更新状态。主题(Subject)是被观察的对象,而其所有依赖者(Observer)称为观察者。

mark

mark

状态(State)

定义

允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它所属的类。

mark

策略(Strategy)

定义

定义一系列算法,封装每个算法,并使它们可以呼唤。

策略模式可以让算法独立于它的客户端。

mark

模板方法(Template Method)

定义

定义算法框架,并将一些步骤的实现延迟到子类。

通过模板方法,子类可以重新定义算法的某些步骤,而不用改变算法的结构。

mark

访问者(Visitor)

定义

为一个对象结构(比如组合结构)增加新能力。

Class Diagram

  • Visitor:访问者,为每一个 ConcreteElement 声明一个 visit 操作
  • ConcreteVisitor:具体访问者,存储遍历过程中的累计结果
  • ObjectStructure:对象结构,可以是组合结构,或者是一个集合。

mark

空对象(Null)

定义

使用什么都不做的空对象来代替Null。

一个方法返回Null,意味着方法的调用端需要去检查返回值是否为NULL,这么做会导致非常多的冗余的检查代码。并且如果某一个调用端忘记了做这个检查返回值,而直接使用返回的对象,那么就有可能抛出空指针异常。

mark

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值