策略模式(Strategy Pattern)是一种行为设计模式,它将一组行为封装到一个系列的对象中,作为一个策略,这些对象之间可以相互替换,让程序的主体对象能够改变它的行为方式,并且能够根据需要动态地选择其中的一种行为。
在C++中,我们可以利用类和接口(抽象基类)来实现策略模式。
下面是一个策略模式的简单实现示例。假设我们有一个交通工具选择应用,用户可以根据自己的需求选择不同的交通工具。
首先,我们定义一个交通工具的接口:
1 | cppCopy code |
然后,我们可以定义一些具体的策略,比如步行、自行车、驾车:
1 | class WalkingStrategy : public TravelStrategy |
接着,我们定义一个旅行者类,它可以使用不同的旅行策略:
1 | class Traveler |
现在,我们可以创建一个旅行者对象,并根据需要改变其旅行策略:
1 | int main() |
这就是策略模式的一个基本实现。它让我们可以独立地更改对象的行为,使其更加灵活和可扩展。