摘要: 【1】什么是简单工厂模式?核心思想:用一个工厂来根据输入的条件产生不同的类,然后根据不同类的virtual函数得到不同的结果。理解:根据条件生成不同的实例。利用多态的特性,调用同名方法,不同的实例将得到不同的结果。【2】代码示例如下:代码如下:#include #include using name... 阅读全文
posted @ 2015-05-27 22:46 南哥的天下 阅读(217) 评论(0) 推荐(1)
摘要: 1】什么是策略模式?坊间的解释都比较拗口,而且不好理解。所谓策略模式,先构建一个策略(即子类的实例),再利用这个具体的实例构建一个策略对象,通过调用策略对象的接口可以达到相应具体策略的结果。【2】策略模式代码示例代码示例:/* * 策略模式 */#include #include #includ... 阅读全文
posted @ 2015-05-27 22:45 南哥的天下 阅读(152) 评论(0) 推荐(0)
摘要: 【1】什么是装饰模式?装饰模式:动态地给一个对象添加一些额外的职责。【2】装饰模式代码示例:代码如下:#include #include using namespace std;class Person{private: string m_strName;public: Person(s... 阅读全文
posted @ 2015-05-27 22:44 南哥的天下 阅读(140) 评论(0) 推荐(0)
摘要: 【1】什么是代理模式? 为其他对象提供一种代理,并以控制对这个对象的访问。 【2】代理模式代码示例: 示例代码: #include <iostream> #include <string> using namespace std; class SchoolGirl { public: string 阅读全文
posted @ 2015-05-27 22:43 南哥的天下 阅读(224) 评论(0) 推荐(0)
摘要: 【1】什么是工厂方法模式?定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。【2】工厂方法模式代码示... 阅读全文
posted @ 2015-05-27 22:42 南哥的天下 阅读(250) 评论(0) 推荐(0)
摘要: 【1】什么是原型模式?原型模式即复制,或者克隆模式。【2】原型模式代码示例:代码示例1:#include #include using namespace std;class Prototype{private: string str;public: Prototype(string s... 阅读全文
posted @ 2015-05-27 22:41 南哥的天下 阅读(206) 评论(0) 推荐(0)
摘要: 1】什么是模板方法模式?又叫模板方法模式,在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情冴下,重新定义算法中的某些步骤。【2】模板方法模式代码示例:代码示例1:#include #include using namespace std;class ... 阅读全文
posted @ 2015-05-27 22:39 南哥的天下 阅读(145) 评论(0) 推荐(0)
摘要: 【1】什么是外观模式? 为子系统中的一组接口提供一个统一的高层接口。这一接口使得子系统更加容易使用。 【2】外观模式的代码示例: 代码示例: #include <iostream> #include <string> using namespace std; class Sub1 { public: 阅读全文
posted @ 2015-05-27 22:38 南哥的天下 阅读(163) 评论(0) 推荐(0)
摘要: 【1】什么是建造者模式?将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。【2】建造者模式代码示例:代码示例1:#include #include #include using namespace std;class Person{public: virtual voi... 阅读全文
posted @ 2015-05-27 22:37 南哥的天下 阅读(153) 评论(0) 推荐(0)
摘要: 【1】什么是观察者模式?观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,让他们能够自动更新自己 【2】观察者模式代码示例:代码示例如下:#include #include #include using namespa... 阅读全文
posted @ 2015-05-27 22:36 南哥的天下 阅读(344) 评论(0) 推荐(0)
摘要: 【1】什么是抽象工厂模式?为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类【2】抽象工厂模式的代码示例:代码示例:#include #include using namespace std;class IUser{public: virtual void getUser()... 阅读全文
posted @ 2015-05-27 22:28 南哥的天下 阅读(177) 评论(0) 推荐(0)
摘要: 【1】什么是状态模式?不同的状态,不同的行为。或者说,每个状态有着相应的行为。【2】状态模式的代码示例:代码示例:#include #include using namespace std;class Work;class State;class ForenonnState;class State{... 阅读全文
posted @ 2015-05-27 22:27 南哥的天下 阅读(216) 评论(0) 推荐(0)
摘要: 【1】什么是适配器模式?将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。【2】适配器模式的代码示例:代码示例如下1:#include #include using namespace std;class Adaptee{pub... 阅读全文
posted @ 2015-05-27 22:26 南哥的天下 阅读(168) 评论(0) 推荐(0)
摘要: 【1】什么是备忘录模式?在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。【2】备忘录模式的代码示例:代码示例如下:#include #include #include using namespace std;class Memo{p... 阅读全文
posted @ 2015-05-27 22:24 南哥的天下 阅读(328) 评论(0) 推荐(0)
摘要: 【1】什么是组合模式?将对象组合成树形结构以表示“部分整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。【2】组合模式代码示例:代码示例:#include #include #include using namespace std;class Component{public:... 阅读全文
posted @ 2015-05-27 22:23 南哥的天下 阅读(198) 评论(0) 推荐(0)
摘要: 【1】什么是迭代器模式?【2】迭代器模式代码示例:代码示例:#include #include using namespace std;class Iterator;class Aggregate{public: virtual Iterator *createIterator() = 0;}... 阅读全文
posted @ 2015-05-27 22:21 南哥的天下 阅读(114) 评论(0) 推荐(0)
摘要: 一、懒汉模式 即第一次调用该类实例的时候才产生一个新的该类实例,并在以后仅返回此实例。 需要用锁,来保证其线程安全性:原因:多个线程可能进入判断是否已经存在实例的if语句,从而non thread safety。 使用double-check来保证thread safety。但是如果处理大量数据时, 阅读全文
posted @ 2015-05-27 22:20 南哥的天下 阅读(202) 评论(0) 推荐(0)
摘要: 【1】什么是桥接模式?【2】桥接模式的代码示例示例代码:#include #include using namespace std;class HandsetSoft{public: virtual void run() = 0;};class HandsetGame : public Han... 阅读全文
posted @ 2015-05-27 22:14 南哥的天下 阅读(209) 评论(0) 推荐(0)
摘要: 【1】什么是命令模式?命令模式:【2】命令模式的代码示例:代码示例:#if 0#include #include using namespace std;/* * 运算基类 */class Operation{public: double numberA; double numberB;... 阅读全文
posted @ 2015-05-27 22:13 南哥的天下 阅读(348) 评论(0) 推荐(0)
摘要: 【1】什么是责任链模式?责任链模式:【2】责任链模式的代码示例:代码示例:#include#includeusing namespace std;class Request{public: string requestType; string requestContent; int... 阅读全文
posted @ 2015-05-27 22:12 南哥的天下 阅读(186) 评论(0) 推荐(0)