三. 行为型模式
14. Chain Of Responsibility(职责链模式)
意图: 使多个对象都有机会处理请求, 从而避免请求的发送者和接收者之间的耦合关系. 将这些对象连成一条链, 并沿着这条链传递该请求, 直到有一个对象处理它为止.
结构:
图16
说明: 有多少开端, 就有多少条责任链.
http://blog.csdn.net/bagboy_taobao_com/article/details/12646185
http://blog.csdn.net/bagboy_taobao_com/article/details/12646289
15. Command(命令模式)
意图: 将一个请求封装为一个对象, 从而使你可用不同的请求对客户进行参数化; 对请求排队或记录请求日志, 以及支持可撤消的操作.
结构:
图17
说明: Command模式将调用操作的对象与知道如何实现该操作的对象解耦(将调用者和接收者解耦).
http://blog.csdn.net/bagboy_taobao_com/article/details/12654777
16. Interpreter(解释器模式)
意图: 给定一个语言, 定义它的文法的一种表示, 并定义一个解释器, 这个解释器使用该表示来解释语言中的句子.
结构:
图18
说明: 对语法树求值可以使用Interpreter模式.
http://blog.csdn.net/bagboy_taobao_com/article/details/12711991
http://blog.csdn.net/bagboy_taobao_com/article/details/12712147
17. Iterator(迭代器模式)
意图: 提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示.
结构:
图19
说明: 迭代器简化了聚合的接口. (聚合中就不需要包含遍历相关的接口)..
http://blog.csdn.net/bagboy_taobao_com/article/details/12747685
18. Mediator(中介者模式)
意图: 用一个中介对象来封装一系列的对象交互. 中介者使各对象不需要显式地相互引用, 从而使其耦合松散, 而且可以独立地改变它们之间的交互.
结构:
图20
说明: 把对象的多对多交互关系变成一对多的交互关系.
http://blog.csdn.net/bagboy_taobao_com/article/details/12842673
19. Memento(备忘录模式)
意图: 在不破坏封装性的前提下, 捕获一个对象的内部状态, 并在该对象之外保存这个状态. 这样以后就可将该对象恢复到原先保存的状态.
结构:
图21
http://blog.csdn.net/bagboy_taobao_com/article/details/12849367