[设计模式笔记]快速小结(三)---行为型模式2

三. 行为型模式


20. Observer(观察者模式)

意图定义对象间的一种一对多的依赖关系当一个对象的状态发生改变时所有依赖于它的对象都得到通知并被自动更新. 

结构:


图22

说明文档视图就是用这个模式.

http://blog.csdn.net/bagboy_taobao_com/article/details/12853151


21. State(状态模式)

意图允许一个对象在其内部状态改变时改变它的行为对象看起来似乎修改了它的类.(状态与行为绑定状态变了行为也就随之改变.).

操作.

结构:


图23

说明状态与行为绑定状态变了行为也就随之改变.(状态就是这个具体状态类对象行为就是该具体类的Handle方法) 

http://blog.csdn.net/bagboy_taobao_com/article/details/13002129


22. Strategy(策略模式)

意图定义一系列的算法,把它们一个个封装起来并且使它们可相互替换本模式使得算法可独立于使用它的客户而变化..

结构:


图24

说明比较Strategy模式与State模式的结构图它们是一样的而且原理也是一样的, State模式是把状态对象绑定了对应状态的行为Strategy模式也是用对象(策略对象)来绑定对应的实现. (个人理解: Strategy模式是State模式的特例或者说State模式是Strategy模式).

http://blog.csdn.net/bagboy_taobao_com/article/details/13002245


23. Template Method(模板方法模式)

意图:  定义一个操作中的算法的骨架而将一些步骤延迟到子类中. TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤.

结构:


图25

说明Template Method实现框架是使用了继承这种继承关系在程序运行前已经固定好的Strategy模式的思想也可以实现框架它使用的包含更灵活.

http://blog.csdn.net/bagboy_taobao_com/article/details/13002341


24. Visitor(访问者模式)

意图表示一个作用于某对象结构中的各元素的操作它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作.

结构:


图26

说明增加具体Visitor简单方便ObjectStruct增加一个Element, Visitor层次需要改变Visitor的接口所以Visitor是常变部分Element是不常变部分.

http://blog.csdn.net/bagboy_taobao_com/article/details/13090285

http://blog.csdn.net/bagboy_taobao_com/article/details/13090313


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值