c++策略模式

时间:2023-12-27 15:24:01

这几天需要学习一下设计模式来为设计代码结构使得代码可扩展性强,代码更加易于维护,不用想很长时间也不知道怎么去设计一个工具的代码。

我的理解策略模式:

1、有一个策略基类,策略类是什么呢?策略类就是一个算法类,每一个算法都有一个类。下面的例子便于理解这个

例子:

你是设计师,空调有暖风、冷风、没风三种模式,那么如何为空调设计这个应用程序呢?且以后还要扩展其他模式?

这时候使用策略模式是最好的了,三种策略类(暖风策略类,冷风策略类,没风策略类)

2、三种类都继承与基类,每一个策略类中有一个方法用于实现当前模式的算法,所以基类中也应该有子类中抽象方法

3、最后一个重要的类是环境类,构造函数中根据传入的策略子类来决定调用那个策略子类的算法,该类中还有个私有变量就是策略基类,构造函数将传入的策略子类对象赋值给私有变量(策略基类)

下面给个结构图应该更好理解一些吧:

c++策略模式

 下面给个代码肯定就理解了。。。

策略类:

c++策略模式

然后我们实现一个windmode 的类,作为 wind 系列的环境类

c++策略模式

c++策略模式