摘要: 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) 编辑