设计模式-行为模式-behavioral patterns
[TOC]
Overview
1.行为模式(Behavioral Patterns)
行为模式(Behavioral Patterns)是软件设计模式的一种,主要关注对象之间的通信和职责的分配。行为模式提供了不同类和对象之间交互的一般化方法,有助于管理和简化复杂的交互逻辑。以下是十一种常见的行为设计模式:
策略模式(Strategy Pattern):
- 定义一系列算法,将每个算法封装起来,并使它们可以互换。策略模式让算法的变化独立于使用算法的客户。
模板方法模式(Template Method Pattern):
- 在一个方法中定义一个算法的骨架,将一些步骤的执行延迟到子类中。模板方法模式使得子类可以在不改变算法结构的情况下,重新定义算法的某些特定步骤。
观察者模式(Observer Pattern):
- 定义对象之间的一对多依赖关系,当一个对象状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。
迭代器模式(Iterator Pattern):
- 提供一种顺序访问聚合对象中的各个元素,而不需要暴露聚合对象的内部表示。
责任链模式(Chain of Responsibility Pattern):
- 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。
命令模式(Command Pattern):
- 将请求或操作封装为一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。
备忘录模式(Memento Pattern):
- 在不破坏封装性的前提下,捕获并保存一个对象的内部状态,以便以后可以恢复到这个状态。
状态模式(State Pattern):
- 允许一个对象在其内部状态发生改变时改变其行为,看起来好像改变了其类。
访问者模式(Visitor Pattern):
- 为一个对象结构(如组合结构)增加新能力,不改变结构中的类。
中介者模式(Mediator Pattern):
- 定义一个中介对象来简化原有对象之间的交互关系,降低系统中对象间的耦合度,使得对象之间不再相互引用,而是通过中介者来进行交互。
解释器模式(Interpreter Pattern):
- 定义一个语言的文法,并建立一个解释器来解释该语言中的句子。解释器模式适合于简单的语言或脚本。
行为模式的应用场景包括但不限于:
- 策略模式:适用于需要动态选择算法或行为的场景,如游戏AI、图像处理算法等。
- 模板方法模式:适用于需要固定算法结构,同时允许子类定制特定步骤的场景。
- 观察者模式:适用于需要建立对象之间的一对多依赖关系,如事件发布订阅系统。
- 迭代器模式:适用于需要访问聚合对象内部元素,但不想暴露其内部结构的场景。
- 责任链模式:适用于需要多个对象依次处理请求,且请求的处理者不明确的场景。
- 命令模式:适用于需要将操作封装为对象,支持命令的排队、记录或撤销的场景。
- 备忘录模式:适用于需要保存和恢复对象状态的场景,如撤销/重做操作。
- 状态模式:适用于对象状态变化导致行为变化的场景,如订单状态管理。
- 访问者模式:适用于需要对一个对象结构添加新操作,同时又不想修改现有对象结构的场景。
- 中介者模式:适用于需要降低多个对象或类之间的复杂交互关系的场景。
- 解释器模式:适用于需要实现简单的语言或语法解析的场景。
行为模式通过定义对象之间的相互作用,帮助开发者实现灵活、可扩展的系统设计。
关于作者
- 微信公众号:WeSiGJ
- GitHub:https://github.com/wesigj/cplusplusboys
- CSDN:https://blog.csdn.net/wesigj
- 微博:
- 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
