【大话设计模式】——行为型模式之“顺序模式”

行为型模式的总结来的有点迟,不过晚到总比不到好啊!

行为型模式是设计模式中分量占的比较多的,所以分类也相对比较麻烦,如图所示:


因为之前在有模板,啥都好说中介绍过模板方法模式,这里就不进行阐释了。下面就上图分类,将行为型模式拆

分成三大部分进行分析。先以顺序模式开始:


顺序模式


我将职责链模式迭代器模式备忘录模式分类到顺序模式里,因为他们都跟或空间,或时间的顺序有比较密

切的关系,不信?你看!

职责链模式——都是领导啊!

还记得职责链模式是如何引出的吗?记得是小菜想涨工资,结果一层一层的往上推责任,直到找到能给他涨工资

的领导为止。这就是一种顺序结构啊!

职责链模式的定义:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对

象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。它的结构图,如图所示:


它的好处是小菜提交加薪请求的时候,可以一直往上申请,直到有一个ConcreteHandler对象负责处理小菜的加

薪,小菜只需坐等加薪就对了!而小菜不需要知道领导层内部结构,且内部结构成员之间也并不需要知道其他

ConcreteHandler,而只需知道如果能处理就自己处理,不能处理交给上层就对了!这样的话就能随时地增加或修改

处理一个请求的结构,增强了给对象指派职责的灵活性。

但是也有可能结构层太多,导致申请时间耗费过长,所以这时候就需要内部结构成员在收到请求的时候进行判

断,而领导层也需要把控全局。

迭代器模式——遍历

先来看看它的定义:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。看不用我

说,有顺序了吧!

再看看它的结构图:

还记得那个强悍的售票员姐姐吗?真的是行行出状元呢!她就相当于一个迭代器,车上的每个乘客都是这里的聚

合对象中的元素,她能遍历上车的每个乘客,在她的原则里,每个人都必须买票,买完票就通过,否则令其买票,直

到车上所有人都买完票。

由此我们知道,迭代器模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴

露集合的内部结构,又可让外部代码透明地访问集合内部的数据。

备忘录模式——恢复进度

再来看看这个模式,书上的实例是小菜玩游戏,保存进度,为了最后打掉大BOSS。这是一个反顺序的模式,它将

进度保存到倒数第二关,然后就不用从头开始游戏,直接进入与大BOSS的对决!

看它的定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就

可将该对象恢复到原先保存的状态。

再看看结构图:

Originator是发起人,Memento是备忘录,而Caretaker是管理者。备忘录模式的作用就是把要保存的细节封装到

Memento中,等到需要修改的时候就不用影响客户端了。

备忘录模式主要使用与功能比较复杂的,需要维护或记录属性历史的类。如我们现在机房需要保存进度,万一机

房电脑出现问题,我们能恢复保存的进度,以还原系统。现在的系统备份也差不多是这个意思!


总结


这是顺序模式的总结,接下来将是行为型模式中的拟人化模式和中介模式的说明。上一结构型总结,内容过多,

阅读不便。所以改变策略,将内容缩减一下,为了读者方便,也为自己减少压力。在上一篇总结的最后说行为型模式

马上就呈现,结果拖的时间有点长了,总结还是应该及时才对!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值