策略模式
来源:互联网 发布:卖py什么意思网络用语 编辑:程序博客网 时间:2024/06/06 04:00
策略模式的作用和特点:策略模式属于对象的行为模式,主要是针对一组算法,将每个算法封装到劝共同接口的独立的类中,从而使得他们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。
策略模式和简单工厂方法模式很像。
我理解中的区别:简单工厂模式是一种创建型模式,它是根据客户端的需求在工厂类中判断创建相应的对象,而策略模式是行为模式,它是根据客户端的需求给对象一个具体的算法,关注的是它的行为,它是在客户端先判断创建什么行为,然后在告诉环境类。
#include<iostream>using namespace std;class Strategy{public:virtual void operate()=0;};class StrategyA:public Strategy{public:void operate(){cout<<"StrategyA"<<endl;}};class StrategyB:public Strategy{public:void operate(){cout<<"StrategyB"<<endl;}};class StrategyC:public Strategy{public:void operate(){cout<<"StrategyC"<<endl;}};class Context{public:Strategy* strategy;Context(Strategy* s):strategy(s){};~Context(){delete strategy;}void operate(){strategy->operate();}};void main(){char a;cin>>a;Context* context=NULL;Strategy* strategy=NULL;switch(a){case 'A':strategy=new StrategyA();context=new Context(strategy);context->operate();break;case 'B':strategy=new StrategyB();context=new Context(strategy);context->operate();break;case 'C':strategy=new StrategyC();context=new Context(strategy);context->operate();break;default:break;}}
策略模式的应用:比如:你去商场购物,很多商品都是可以打折的,但是不同的商品打折率是不同的,这是就可以采用策略模式,对不同的商品,给它的策略打折算法也是不同的。
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- element.tagName
- HTML5标签小结
- 程序员学数据库那些事儿
- 百度武汉站笔试题——算法题第一第二题Java实现
- Effective C++ 第二版 13) 初始化列表 14) 虚析构函数
- 策略模式
- 从Xcode 5.0安装开始……
- adb 命令大全
- Problem D: CX and girls
- Leetcode: Spiral Matrix II
- 快速傅里叶变换,使用C++ STL Complex 实现
- HTML5批量拖拽图片到网页
- Java 对象直接写入文件 --序列化和反序列化
- 中国象棋程序的设计与实现(四)-- 一次“流产”的写书计划