设计模式2--strategy(策略模式)
strategy(策略模式)
策略模式主要应对的问题:
- 业务算法多变
- 许多类仅仅是行为不同
- 多个条件判断,并且条件个数有可能随着业务增加
文章图片
strategy.png 代码:
策略接口类:
- 对策略接口进行定义
//策略接口
class strategyInterface
{
public:
virtual void dealWay()=0;
};
具体策略
- 对具体策略进行实现
//具体策略的实现1
class strategyOne : public strategyInterface
{
public:
virtual void dealWay() {
cout<<"策略1"<
具体策略
- 对具体策略进行实现
//具体策略的实现2
class strategyTwo : public strategyInterface
{
public:
virtual void dealWay() {
cout<<"策略2"<
//使用策略的对象,拥有一个多态的策略指针,调用不同的策略
//策略使用者
class useStrategy
{
protected:
strategyInterface* strategy;
public:
//此处使用工厂模式更加好
useStrategy(strategyInterface* _strategy):strategy(_strategy)
{}
void test()
{
strategy->dealWay();
}
};
【设计模式2--strategy(策略模式)】test
#include
using namespace std;
int main(int argc, char const *argv[]) {
useStrategy* us = new useStrategy(new strategyOne());
us->test();
useStrategy* us1 = new useStrategy(new strategyTwo());
us1->test();
return 0;
}
文章图片
测试.png
推荐阅读
- 硬笔楷书26
- 设计模式-代理模式-Proxy
- 《教育心理学》读书笔记十四---学校班级管理的现状分析与策略研究
- 张晧奕(7.8国际黄金,原油丨日内进场操作策略建议,黄金参考策略)
- 王谦讳(1.26黄金多空利润如何把握;白银TD短线操作策略指导)
- 设计模式【15】--从审批流中学习责任链模式
- 2020-11-18迭代器设计模式
- 秋季养生策略——阳光森林林海峰
- 简易有效Api接口防攻击策略
- 定投策略