本帖最后由 dxxds 于 2013-10-27 10:55 编辑
自从第一个教程帖完结后,就偷懒没再发第二贴了。原因也是有的,其中最大的原因就是因为…… 因为空撸伤身什么的造成我一直没有再发新帖。
当然这次发了,也并不是说我就有了,我依然没有。你们是想说我有基友了么?#16t 你们!你们实在是!是!太!了解我了!
嗯,好基友也是没有的。
好了,先复习一下之前学过的一个内容吧:继承。
就是在情人节的那天,用一个父类指针创建一个子类对象,当然,这个父亲有好几个孩子,他可以随便选则是自己变成哪一个,或者轮着变一圈,然后……
这就是策略啊策略!别说我无耻啊!这设计模式里就是这么写的!
然后就上来我们今天的第一课内容了:策略模式!
是有人想问我为啥不是从工厂模式开始讲?别的书都是从这个开始的……
切!库达拉那医 …… 那样不就显得我很不专业么,显得我是抄他们的了么?所以我换一个。
这个策略模式,就是说会随着环境的变化,自己的策略也会有相应的变化。之前继承的课程里就用策略模式
今天出门
如果晴天,就去拿棒棒糖换萝莉。
如果是阴天,就去基友家撸PSP。
如果是下雪天,就自己撸代码。
先上这个熟悉的代码模板
#include *本站禁止HTML标签噢*
using namespace std;
int main()
{
return 0;
}
默认编译环境是WIN下的C-FREE和VS2005以上。(C-FREE好像用的就是我的VS编译器…… 主要是我的DEVCPP很严重的坏了,然后我又懒的修复…… 想来这点基础C++,语法应该都是一样的)
然后在这个基础上,添加一个纯洁的父亲类
class I_evil //纯洁类 I表示interface
{
public:
I_evil(void){}; //构造函数,用来创造纯洁
virtual ~I_evil(void){}; //析构函数,当然是删除纯洁
virtual void strategy(void)=0; //虚函数,执行那纯洁的策略
};
然后我们来写这第一个策略
class C_sunshine : public I_evil //公有方式继承父类,为什么公有,因为好用
{
public:
C_sunshine(){};
~C_sunshine(){}; //是虚的,不过virtual可以不用写
void strategy(void) //也是虚的,virtual写不写都一样,一般要写,因为整齐,可读性好
{
cout<<"去拿棒棒糖换萝莉"<<endl;
}
};
注释写的很清楚了,我就接着写第二第三个了
class C_cloudy : public I_evil //第二个策略,继承纯洁
{
public:
C_cloudy(){};
~C_cloudy(){};
void strategy(void)
{
cout<<"去基友家撸PSP"<<endl;
}
};
class C_snow : public I_evil //第三个策略
{
public:
C_snow(){};
~C_snow(){};
void strategy(void)
{
cout<<"独自撸代码"<<endl;
}
};
然后就该执行了
int main()
{
I_evil* Evil_Father = NULL; //一个纯洁的爸爸,main函数里,全程就只有这一个变量
cout<<"第一天,晴天"<<endl; //第一天开始了
Evil_Father = new C_sunshine;
Evil_Father->strategy();
delete Evil_Father; //第一天结束了
cout<<"第二天,下雪"<<endl; //第二天来了
Evil_Father = new C_snow;
Evil_Father->strategy();
delete Evil_Father; //第二天过去了
cout<<"最后一天,阴天"<<endl; //第三天也来了
Evil_Father = new C_cloudy;
Evil_Father->strategy();
delete Evil_Father; //第三天结束了
system("pause>nul"); // stdlib.h 或者 cstdlib
return 0;
}
今天开斋节,小放假
内容简单易懂,看完回一下这个好帖子。
当然,不懂的就更要回一下这个0售价的好帖子了啊!!
