状态模式(State Pattern)
定义 状态模式(State Pattern)是一种行为设计模式,它允许对象在其内部状态改变时改变其行为。这意味着,当对象的状态发生变化时,它的行为也会发生变化。状态模式特别适用于行为依赖于其状态的对象,而且当这些状态可以独立于对象的其他部分进行变化时。 在状态模式中,我们定义一个Context类和一个State接口,以及多个实现了State接口的ConcreteState类。Context类持有一个State对...
中介者模式(Mediator Pattern)
定义 中介者模式(Mediator Pattern)是一种行为设计模式,它用于将一组对象的交互行为封装在一个中介者对象中,从而减少对象之间的直接耦合。这种模式提供了一种集中式的控制方式,通过中介者对象来协调不同对象之间的交互。 示例 以下是一个简单的 C++ 中介者模式的示例,我们以聊天室为例,其中用户(User)之间的消息传递通过中介者(ChatRoom)进行协调。 #include <iostream>#...
访问器模式(Visitor Pattern)
定义 访问器模式(Visitor Pattern)是一种将数据结构与数据操作分离的设计模式,它可以将对数据的操作添加到数据结构中,而不必修改已有的数据结构。这允许我们定义新的操作,而不需要修改已有的类结构。 访问器模式通常用于以下场景: 当一个数据结构包含许多不同类型的对象,你想对这些对象实施一些依赖于其具体类的操作,而不希望修改这些类的结构。需要对一个数据结构进行很多不同且不相关的操作,你想避免让这些操作"污...
命令模式(Command Pattern)
定义 命令模式(Command Pattern)是一种行为设计模式,它允许将请求封装成一个对象,从而让你使用不同的请求把客户端与接收者解耦。命令模式的主要目标是实现请求的发送者和接收者之间的解耦,使得发送者不需要知道接收者的具体实现,而接收者也不需要知道请求的具体来源。 在命令模式中,通常包含以下几个角色: Command(命令):这是一个抽象接口,声明了执行命令的接口。通常包含一个执行命令的execute()...
迭代器模式(Iterator Pattern)
定义 迭代器模式(Iterator Pattern)是一种行为型设计模式,它提供了一种方法来顺序访问聚合对象中的各个元素,而不需要暴露该对象的内部表示。迭代器模式使得客户端代码能够独立于聚合对象的具体实现进行遍历操作。 在迭代器模式中,我们定义以下几个角色: Iterator(迭代器):定义访问和遍历元素的接口。 ConcreteIterator(具体迭代器):实现迭代器接口,并记录遍历的当前位置。 Aggre...
组合模式(Composite Pattern)
定义 组合模式(Composite Pattern)是一种结构型设计模式,它允许你将对象组合成树形结构,并且能像使用单独对象一样使用组合对象。组合模式让客户端代码对单个对象和复合对象的使用具有一致性。 在组合模式中,我们定义以下几个角色: Component:这是一个抽象组件接口,它定义了所有组件共有的行为。这些行为包括添加和删除子组件、显示子组件等。 Leaf:这是具体组件,也就是叶子节点,它实现了组件接口,...
备忘录模式(Memento Pattern)
定义 备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不破坏封装性的前提下捕获一个对象的内部状态,并在以后将对象恢复到该状态。备忘录模式通常用于实现撤销操作(Undo)或历史记录(History)等功能。 在备忘录模式中,我们定义三个角色: Originator:记录当前时刻它的内部状态,并可使用备忘录对象恢复到之前的状态。Memento:负责存储Originator对象的内部状态,并可...
代理模式(Proxy Pattern)
定义 代理模式(Proxy Pattern)是一种结构型设计模式,其目的是为其他对象提供一个代理或占位符,以控制对这个对象的访问。代理类通常在客户端和目标对象之间起到中介的作用,用于控制对目标对象的访问,并在必要时添加额外的功能。 示例 #include <iostream> // 抽象主题接口class Subject {public: virtual void request() = 0;}; // ...
适配器模式(Adapter Pattern)
定义 适配器模式是一种结构型设计模式,它允许将一个类的接口转换成客户希望的另一个接口。这种模式通常用于解决接口不兼容的问题。适配器模式包括三个角色:目标接口(Target)、适配器(Adapter)和被适配者(Adaptee)。 示例 在 C++ 中,适配器模式可以通过类适配器和对象适配器两种方式来实现。下面分别介绍这两种方式,并提供相应的示例。 类适配器 在类适配器中,适配器类继承自目标接口类,并且包含一个被...
原型模式(Prototype Pattern)
定于 原型模式是一种创建型设计模式,其核心思想是通过复制现有对象来创建新对象,而不是通过实例化类来创建对象。这种方式可以在不知道具体对象类型的情况下创建新的实例,同时还能够避免耦合性,使得系统更灵活。 在原型模式中,有一个原型对象作为模板,然后通过复制这个原型对象来创建新的对象。这个原型对象必须实现一个能够复制自身的方法。 原型模式允许你避免重新创建和初始化一个对象带来的性能开销,尤其是在对象创建过程复杂或代价...