摘要: 地址:http://blog.csdn.net/wuzhekai1985/article/details/6665542,仅供学习用。适配器:STL实现了一种数据结构,称为双端队列(deque),支持前后两段的插入与删除。STL实现栈和队列时,没有从头开始定义它们,而是直接使用双端队列实现的。这里双端队列就扮演了适配器的角色。队列用到了它的后端插入,前端删除。而栈用到了它的后端插入,后端删除。假设栈和队列都是一种顺序容器,有两种操作:压入和弹出。 阅读全文
posted @ 2013-07-17 15:38 2011winseu 阅读(142) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/wuzhekai1985/article/details/6665197。仅供参考。策略模式:实现替换功能,如cache替换算法:当发生Cache缺失时,Cache控制器必须选择Cache中的一行,并用欲获得的数据来替换它。所采用的选择策略就是Cache的替换算法。实现方式有三种,以上连接中已经给出 阅读全文
posted @ 2013-07-16 20:04 2011winseu 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 地址:http://blog.csdn.net/wuzhekai1985/article/details/6665869。仅供自己参考学习。单例模式:保证一个类仅有一个实例,并提供一个访问它的全局节点。定义一个Instance操作,允许客户访问它的唯一实例。客户只能通过Singleton的Instance操作访问一个实例。 阅读全文
posted @ 2013-07-16 17:08 2011winseu 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 看链接:http://blog.csdn.net/wuzhekai1985/article/details/6667020。纯属为自己学习所使用。对于原型模式的理解:就如连接中所说,制作简历时先手写一个然后使用打印机进行复印得到复印件。这样一旦有错误需要修改只需要修改手写稿然后再复印即可。创建时不同的简历对应不同的类,然后再main函数实现的过程中进行复印(clone)即可;对于模板模式:还是对于简历问题,应聘的公司给应聘者一张简历,上面有各种信息,然后让应聘者进行填写即可。实现是可以创建基类,基类中的各个因素包含的为简历上的各种信息,但是实现是在不同的子类中进行实现的。子类代表不同的人,基类 阅读全文
posted @ 2013-07-15 18:13 2011winseu 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 链接转自:http://blog.csdn.net/wuzhekai1985/article/details/6667467主要思想是:首先有个指挥家思想者将大体的设计思路设计出来,然后寻找一部分工人来按照设计者的思想来进行操作。 阅读全文
posted @ 2013-07-13 16:33 2011winseu 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 分析源于:http://blog.csdn.net/wuzhekai1985/article/details/6660462自己的理解:简单工厂模式:有两种型号的单核处理器,通过一个工厂能生产出来;工厂方法模式:有两种型号的单核处理器,通过不同的两个工厂来生产出来;抽象工厂模式:有两种不同类型的处理器分别为单核处理器和双核处理器,单核处理器又有两种型号A和B,双核处理器也有两种型号A和B。这样有两个工厂,一个工厂生产A型号的处理器,另一个工厂生产B型号的处理器。 阅读全文
posted @ 2013-07-13 16:20 2011winseu 阅读(143) 评论(0) 推荐(0) 编辑
摘要: class TimeKeeper{public: TimeKeeper() ; ~TimeKepper() ; ...} ;class AtomicClock:public TimeKeeper{...}// 原子钟class WaterClock:public TimeKeeper{...}// 水钟class WristWatch:public TimeKeeper{...}// 腕表根据工厂模式,会返回一个base class指针指向新生成的derived class对象。TimeKeeper* getTimeKeeper() ;// 返回一个指针,指向一个TimeKe... 阅读全文
posted @ 2013-07-12 20:52 2011winseu 阅读(542) 评论(0) 推荐(0) 编辑
摘要: 本文系转载,转载地址http://blog.sina.com.cn/s/blog_59b6af690100zj3l.html,只供自己学习使用。假设现在有三种产品,是玩具,都是由三部分组成,头,身体,和脚丫,现在要实现生产不同组合产品的功能,例如第一种产品是红头,绿身体,黑脚第二种产品是绿头,黑身体,红脚第三种产品是黑头,红身体,绿脚丫现在现写一个build基类,class builder{public: virtual void buildpartHead(const char* str="pre-define")=0; virtual void buildpartBod 阅读全文
posted @ 2013-07-12 16:48 2011winseu 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 1. 意图 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。2. 别名 Kit3. 动机 假设我们要开发一款游戏,当然为了吸引更多的人玩,游戏难度不能太大 (让大家都没有信心了,估计游戏也就没有前途了),但是也不能太简单 (没有挑战性也不符合玩家的心理)。于是我们就可以采用这样一种处理策略:为游戏设立等级,初级、中级、高级甚至有BT 级。假设也是过关的游戏,每个关卡都有一些怪物 (monster)守着,玩家要把这些怪物干掉才可以过关。作为开发者,我们就不得不创建怪物的类,然后初级怪物、中级怪物等都继承自怪物类(当然不同种类的则需要另创建类,但是模式相同)。在每个关卡,我们. 阅读全文
posted @ 2013-07-12 16:15 2011winseu 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 1. 当只写一个空类的时候,编译器会为他声明一个copy构造函数,一个copy assignment函数和一个析构函数。如下:如果写下:class Empty{ };编译器就会实现以下代码:class Empty{ Empty(){} //默认构造函数 Empty(const Empty& rhs ) {} //复制构造函数 ~Empty() {} //析构函数 Empty& operator=( const Empty& rhs ) {} // 复制赋值操作符};编译器产生的是non-virtual函数。默认产生以上四种构造函数。如果要使这些编译器默... 阅读全文
posted @ 2013-07-11 19:40 2011winseu 阅读(411) 评论(1) 推荐(0) 编辑