喵宅苑 MewoGarden × 技术宅社区II | Z站 Z Station 棒棒哒纯文字二次元技术社区

正文

【教】明明人家才是最萌的设计模式(10.27更新)

作者:dxxds
[i=s] 本帖最后由 dxxds 于 2013-10-27 10:55 编辑 自从第一个教程帖完结后,就偷懒没再发第二贴了。原因也是有的,其中最大的原因就是因为…… 因为空撸伤身什么的造成我一直没有再发新帖。 当然这次发了,也并不是说我就有了,我依然没有。你们是想说我有基友了么?#16t 你们!你们实在是!是!太!了解我了! 嗯,好基友也是没有的。 好了,先复习一下之前学过的一个内容吧:继承。 就是在情人节的那天,用一个父类指针创建一个子类对象,当然,这个父亲有好几个孩子,他可以随便选则是自己变成哪一个,或者轮着变一圈,然后…… 这就是策略啊策略!别说我无耻啊!这设计模式里就是这么写的! 然后就上来我们今天的第一课内容了:策略模式! 是有人想问我为啥不是从工厂模式开始讲?别的书都是从这个开始的…… 切!库达拉那医 …… 那样不就显得我很不专业么,显得我是抄他们的了么?所以我换一个。 这个策略模式,就是说会随着环境的变化,自己的策略也会有相应的变化。之前继承的课程里就用策略模式 今天出门 如果晴天,就去拿棒棒糖换萝莉。 如果是阴天,就去基友家撸PSP。 如果是下雪天,就自己撸代码。 先上这个熟悉的代码模板 #include<iostream> 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售价的好帖子了啊!!

回复

因为你没写函数类型

作者:dxxds
jingyixx 发表于 2013-8-9 09:45 ……因为你没写函数类型
…… 你就當我賣了個萌
查看回复

提示錯誤是什麽

作者:jingyixx
dxxds 发表于 2013-8-9 09:29 提示錯誤是什麽? 我已經用C-FREE和VS編譯通過了。
……因为你没写函数类型
查看回复

不能编译

作者:dxxds
jingyixx 发表于 2013-8-9 09:19 不能编译
提示錯誤是什麽? 我已經用C-FREE和VS編譯通過了。 能自己排除么?
查看回复

这里怎么了

作者:jingyixx
dxxds 发表于 2013-8-9 07:24 这里怎么了?
不能编译
查看回复

各种头疼各种晕的终于把第一帖撸完了

作者:s闲蛋超人
#fm 各种头疼各种晕的终于把第一帖撸完了...LZ太强大了..继续努力哈!!
查看回复

还有这里

作者:dxxds
jingyixx 发表于 2013-8-9 00:11 virtual strategy(void)=0; 还有这里
这里怎么了?
查看回复

还有这里

作者:jingyixx
virtual strategy(void)=0; 还有这里
查看回复

本帖最后由

作者:dxxds
[i=s] 本帖最后由 dxxds 于 2013-8-8 23:48 编辑
jingyixx 发表于 2013-8-8 21:04 建议您发教程之前先自己编译下
好吧,急着出门,懒了一次。 现在改好了,大家慢慢看
查看回复
上一页
下一页
0%
站点地图友情链接:
喵宅苑
喵空间社区程序
喵宅苑 静态版
宅喵RPG地图编辑器
络合兔
Lanzainc
技术宅
小五四博客
莉可POI
Mithril.js
枫の主题社
Project1
午后少年
机智库
七濑胡桃
xiuno
幻想の日常
魂研社
Nothentai
0xffff
欲望之花
泽泽社长
淀粉月刊
HAYOU
红客联盟
异次元
轻之国度
神奇宝贝新生代
游戏狗
口袋双子星
我的世界论坛
梦次元
动漫东东
动漫国际
精艺论坛
78动漫
吐槽弹幕网
漫客栈