博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
design pattern Builder 生成器设计模式
阅读量:6888 次
发布时间:2019-06-27

本文共 2371 字,大约阅读时间需要 7 分钟。

其实设计模式可以学习很有趣,你并不需要有这么难啃旱地FOG对我来说,当然,这些都是健康的骨骼啃啃。

在本文中,建造者模式设计一个搞笑的一幕。根据这一模型来学习功夫的方法,哈哈。

基类的第一,设计。那么你必须有学习武术基础:

class 功夫{public:	virtual void 看招() = 0;};
有了基础之后。我们就能够学习高级功法了,这里学习降龙十八掌。O(∩_∩)O~。

list<int>容器。相当于记录下来的武功招式了。记住这些招式之后就能够開始学习了。小宝曰:绝世武功这么厚,看也得半年吧。

因为已经失传的缘故。这里仅仅有5招了。呵呵。

class 学习降龙十八掌 : public 功夫{	list
招式;public: 学习降龙十八掌() { } void 学习宝典(list
宝典) { 招式.clear(); 招式 = 宝典; } void 看招() { auto it = 招式.begin(); for ( ; it != 招式.end(); it++) { switch (*it) { case 1: 亢龙有悔(); break; case 2: 飞龙在天(); break; case 3: 见龙在田(); break; case 4: 潜龙勿用(); break; case 5: 震惊百里(); break; default: 已失传(); } } } void 亢龙有悔() { puts("\n亢龙有悔:\n说着左腿微屈。右臂内弯,右掌划了个圆圈。呼的一声,向外推去,手掌扫到面前一棵松树,喀喇一响。松树应手断折。\n 他左手划个半圆。右手一掌推出,正是生平得意之作“降龙十八掌”中的「亢龙有悔」"); } void 飞龙在天() { puts("\n飞龙在天:\n洪七公把“降龙十八掌”中的第二招「飞龙在天」教了郭靖。\n这一招跃起半空,居高下击,威力奇大,郭靖花了三天工夫,方才学会。"); } void 见龙在田() { puts("\n见龙在田:\n郭靖见他越逼越近,早有提防,当他右手离黄蓉身前尺许之际,左掌圆劲,右掌直势,使招「见龙在田」,挡在黄蓉身前。\n这一招纯是防御,却是在黄蓉与渔人之间布了一道坚壁。敌来则挡,敌不至则消于无形。

"); } void 潜龙勿用() { puts("\n潜龙勿用:\n郭靖暗叫:“不好!

”全身已感酸麻,危险中右手屈起食中两指。半拳半掌,向她胸口打去。那是「潜龙勿用」的半招。本来左手同一时候向里钩拿,右推左钩。敌人极难闪避,现下左腕被拿,仅仅得使了半招。"); } void 震惊百里() { puts("\n震惊百里:\n欧阳锋叫声:“好!”第二推又已迅速异常的赶到,前劲未衰,后劲继至。\n郭靖猛认为劲风罩上身来。心知不妙。一招「震惊百里」。也是双掌向前平推。这是降龙十八掌中威力极大的一招。"); } void 已失传() { puts("\n已失传\n"); } };

有了武功宝典之后。就能够由人进行学习啦,理论上谁都能够学习的,看有缘人是谁吧:

class 学习对象{public:	virtual void 学亢龙有悔() = 0;	virtual void 学飞龙在天() = 0;	virtual void 学见龙在田() = 0;	virtual void 学潜龙勿用() = 0;	virtual void 学震惊百里() = 0;	virtual void 学多了() = 0;	virtual 功夫 *学成() = 0;};
这个有缘人就是郭大侠啦:

class 郭靖 : public 学习对象{	学习降龙十八掌 *秘籍;	list
招式;public: 郭靖() { 秘籍 = new 学习降龙十八掌; } void 学亢龙有悔() { 招式.push_back(1); } void 学飞龙在天() { 招式.push_back(2); } void 学见龙在田() { 招式.push_back(3); } void 学潜龙勿用() { 招式.push_back(4); } void 学震惊百里() { 招式.push_back(5); } void 学多了() { 招式.push_back(6); } 功夫 *学成() { 秘籍->学习宝典(招式); return 秘籍; } ~郭靖() { delete 秘籍; }};
然后是执行:

void 打功夫(){	学习对象 *郭大侠 = new 郭靖;	郭大侠->学飞龙在天();	郭大侠->学见龙在田();	郭大侠->学亢龙有悔();	郭大侠->学潜龙勿用();	郭大侠->学震惊百里();	郭大侠->学多了();	功夫 *降龙掌 = 郭大侠->学成();	降龙掌->看招();}
最后执行结果:

总结其思想:

已经有了一本武功秘籍了-”学习降龙十八掌“,可是不一定要所有学完的,所以书中记录了各种招式,能够让人选择,并使用容器list<int>记录人的选择。

这个选择是由觉得做出的-郭靖,选择好之后,再终于生成最后的武功招式。

这里的-看招函数就是依照list<int>的内容一招一招打出去的。

呵呵,本程序是在vs2012上执行的,因为是全中文。故此vs6肯定是不能执行的了。

版权声明:笔者靖心脏。景空间地址:http://blog.csdn.net/kenden23/,只有经过作者同意转载。

你可能感兴趣的文章
Xcode的代码块和代码块注释
查看>>
json.net使用说明四
查看>>
0.1:Why are We Addicted to Games
查看>>
Redis
查看>>
open jdk卸载
查看>>
js - AO链 与 function
查看>>
Java CLASSPATH 引发的问题
查看>>
数学运算类(三角函数,取整函数,指数函数,取最大值,最小值,绝对值)...
查看>>
Java并发编程的艺术(笔记)
查看>>
【PIC单片机】Pic单片机基础知识
查看>>
软件测试--实际项目的实际操作过程--免费资料
查看>>
go 编释流程
查看>>
agsxmpp 和 openfire 服务器 通信
查看>>
servlet 解决中午乱码
查看>>
ios项目绕过证书访问https程序
查看>>
几乎所有编程语言的hello, world程序(3)
查看>>
CentOs 设置静态IP 方法
查看>>
Ubuntu 16.04源码编译安装nginx 1.10.0
查看>>
2017"百度之星"程序设计大赛 - 资格赛-度度熊与邪恶大魔王(dp+后缀最小值)
查看>>
Node + vue 实现移动官网
查看>>