IT评测·应用市场-qidao123.com
标题:
C++计划模式之举动型模式概述,它们的目标与特点
[打印本页]
作者:
兜兜零元
时间:
2024-12-31 18:42
标题:
C++计划模式之举动型模式概述,它们的目标与特点
举动型计划模式需要解决的问题
举动型计划模式紧张关注对象之间的
责任分配
和
交互
。它们解决的问题包罗:
对象之间的通讯
:如何让对象之间高效地通讯,同时保持松耦合。
算法的封装与复用
:如何将算法或举动封装起来,使其可以独立于使用它的对象而变化。
状态管理与举动变化
:如何管理对象的状态,并根据状态的变化动态调整对象的举动。
哀求的处理与传递
:如何将哀求的处理逻辑解耦,使其可以灵活地传递或扩展。
对象之间的协作
:如何界说对象之间的协作关系,使其能够共同完成复杂的任务。
举动型模式的核心是
对象的举动
,而不是对象的创建或结构。它们通过界说对象之间的交互方式,使体系更加灵活、可扩展和易于维护。
举动型模式相对于创建型和结构型模式的特点
关注点不同
:
创建型模式
:关注对象的创建过程,解决如何实例化对象的问题。
结构型模式
:关注对象和类的组合,解决如何构建更大的结构的问题。
举动型模式
:关注对象之间的交互和职责分配,解决对象如何协作和通讯的问题。
解决的问题不同
:
创建型模式解决的是“
如何创建对象
”的问题。
结构型模式解决的是“
如何构造类和对象
”的问题。
举动型模式解决的是“
对象如何交互和协作
”的问题。
计划目标不同
:
创建型模式的目标是
解耦对象的创建与使用
。
结构型模式的目标是
简化复杂体系的结构
。
举动型模式的目标是
进步对象之间的灵活性和可扩展性
。
实现方式不同
:
创建型模式通常通过
封装创建逻辑
来实现。
结构型模式通常通过
组合类或对象
来实现。
举动型模式通常通过
界说对象之间的交互协议
来实现。
举动型模式的各个模式及其意图
以下是举动型模式的具体分类及其意图:
策略模式(Strategy Pattern)
:
意图
:界说一系列算法,将它们封装起来,并使它们可以相互替换。策略模式使得算法可以独立于使用它的客户端而变化。
观察者模式(Observer Pattern)
:
意图
:界说对象间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会收到关照并主动更新。
责任链模式(Chain of Responsibility Pattern)
:
意图
:将哀求的发送者和吸收者解耦,使多个对象都有机会处理哀求。将这些对象连成一条链,并沿着这条链传递哀求,直到有一个对象处理它为止。
命令模式(Command Pattern)
:
意图
:将一个哀求封装为一个对象,从而使你可以用不同的哀求对客户进行参数化,支持哀求的排队、记载日记以及打消操纵。
状态模式(State Pattern)
:
意图
:允许一个对象在其内部状态改变时改变它的举动。对象看起来似乎修改了它的类。
模板方法模式(Template Method Pattern)
:
意图
:界说一个操纵中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变算法的结构即可重界说算法的某些特定步骤。
访问者模式(Visitor Pattern)
:
意图
:表现一个作用于某对象结构中的各元素的操纵。它使你可以在不改变各元素的类的前提下界说作用于这些元素的新操纵。
中介者模式(Mediator Pattern)
:
意图
:界说一个中介对象来封装一系列对象之间的交互。中介者使各对象不需要显式地相互引用,从而使其耦合疏松,而且可以独立地改变它们之间的交互。
备忘录模式(Memento Pattern)
:
意图
:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后可以将该对象恢复到原先保存的状态。
迭代器模式(Iterator Pattern)
:
意图
:提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表现。
解释器模式(Interpreter Pattern)
:
意图
:给定一个语言,界说它的文法的一种表现,并界说一个解释器,该解释器使用该表现来解释语言中的句子。
总结
举动型计划模式的核心是
对象之间的交互和职责分配
。它们通过界说对象之间的协作方式,使体系更加灵活、可扩展和易于维护。与创建型模式和结构型模式相比,举动型模式更关注
对象的举动
,而不是对象的创建或结构。通过合理使用举动型模式,可以有效地解决对象之间的通讯、状态管理、哀求处理等问题,从而进步软件计划的质量。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4