策略模式

来源:互联网 发布:卖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;}}

策略模式的应用:比如:你去商场购物,很多商品都是可以打折的,但是不同的商品打折率是不同的,这是就可以采用策略模式,对不同的商品,给它的策略打折算法也是不同的。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 u盘弹出要格式化怎么办 u盘无法格式化怎么办啊 大盘下跌下你该怎么办 股票想卖没人买怎么办 百变模板乱了怎么办 5个半月宝宝胀气怎么办 三岁宝宝胃胀怎么办 全民k歌不能用wf怎么办 雅乐之舞掉叶子怎么办 姬珊瑚发软歪了怎么办 胃胀气怎么办简单的方法 8个月的宝宝咳嗽怎么办 坐完月子掉头发怎么办 在香港买到假货怎么办 用气垫脸上浮粉怎么办 不够奶给宝宝吃怎么办 叶插发芽发根后怎么办 多肉植物摊大饼怎么办 英短蓝猫掉毛怎么办 英短蓝猫很凶怎么办 面部打伤怎么办了肿了 朋友欠钱一直拖怎么办 旧车三年不年检怎么办 遇到领导整你该怎么办 皮肤热了就瘙痒怎么办 猫爪子肉垫脏了怎么办 嘴周围干燥起皮怎么办 下嘴唇总是起皮怎么办 上嘴唇老是起皮怎么办 涂口红嘴唇起皮怎么办 上嘴唇干裂起皮怎么办 9岁儿童嘴唇干裂怎么办 上嘴唇干裂烂了怎么办 孕妇脚干的裂开怎么办 小腿皮肤干燥起皮怎么办 秋天脸干燥起皮怎么办 脚上干燥起皮怎么办 脚皮肤干燥起皮怎么办 脚有脚气脱皮又痒怎么办 脚特别干还脱皮怎么办 皮肤干燥起皮怎么办痒