代码改变世界

设计模式(10)--观察者模式

2016-11-07 23:44 by sylar_liang, 171 阅读, 0 推荐, 收藏, 编辑
摘要://10.观察者模式 //ver1 class StockObserver; //与 Secretary 相互依赖; 所以提前声明 class Secretary; //股票同事类 class StockObserver { private: string _name; Secretary * _ps; public: StockObserver(string name, Secreta... 阅读全文

设计模式(9)--建造者模式

2016-11-07 23:36 by sylar_liang, 160 阅读, 0 推荐, 收藏, 编辑
摘要://建造者模式(或叫生成器模式),将一个复杂对象的构建与它的表示愤慨,使得同样的构建过程可以创建不同的表示。 //如果我们用了建造者模式,那么用户就只需指定需要建造的类型就可以得到它们,而具体建造的过程和细节就不需知道了。 //抽象类 class PersonBuilder { protected: char * _pg; //Graphics * _pg; 用char来代替,通过编译 c... 阅读全文

设计模式(8)--外观模式

2016-11-04 00:29 by sylar_liang, 183 阅读, 0 推荐, 收藏, 编辑
摘要://迪米特法则: 也叫最少知识原则。如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。//如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。//前提: 在类的结构设计上,每一个类都应当尽量降低成员的访问权限。//根本思想: 强调了类之间的松耦合。 //外观 阅读全文

设计模式(7)--模板模式

2016-11-04 00:08 by sylar_liang, 154 阅读, 0 推荐, 收藏, 编辑
摘要://7.模板模式 //ver1 //考试试卷类 class TestPaper { public: void TestQuestion1(){} void TestQuestion2(){} virtual string Answer1() { return ""; } virtual string Answer2() { return ""; } }; class ... 阅读全文

设计模式(6)--原型模式

2016-11-03 00:37 by sylar_liang, 189 阅读, 0 推荐, 收藏, 编辑
摘要://操作步骤://1.声明一个抽象基类,并定义clone()函数未纯虚函数。//2.实例化各个子类,并且实现复制构造函数,并实现clone()函数. 阅读全文

设计模式(5)--工厂模式

2016-11-03 00:15 by sylar_liang, 243 阅读, 1 推荐, 收藏, 编辑
摘要://简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,//对于客户端来说,去除了与具体产品的依赖。 //工厂模式,定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。//工厂模式实现时,客户端需要决定实例化哪一个工 阅读全文

设计模式(4)--代理模式

2016-11-02 22:04 by sylar_liang, 168 阅读, 0 推荐, 收藏, 编辑
摘要://代理模式场合://一.远程代理。也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。//二.虚拟代理。是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。//三.安全代理。用来控制真实对象访问时的权限。//四.智能指引。当调用真实的对象 阅读全文

设计模式(3)--装饰模式

2016-11-02 01:07 by sylar_liang, 211 阅读, 0 推荐, 收藏, 编辑
摘要://装饰模式: 动态地给一个对象添加一些额外的职责,就增加功能类说,装饰模式比生成子类更为灵活; //如果只有一个ConcreteComponent类而没有抽象的Component类,那么Decorator类可以是ConcreteComponent的一个子类。//如果只有一个ConcreteDeco 阅读全文

设计模式(2)--策略模式

2016-11-01 01:17 by sylar_liang, 200 阅读, 0 推荐, 收藏, 编辑
摘要:策略模式: 定义算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到算法的客户. //另一种更好的模式可能是 反射模式。 阅读全文

设计模式(1)--简单工厂模式

2016-10-31 23:59 by sylar_liang, 190 阅读, 1 推荐, 收藏, 编辑
摘要://ver1 class Operation { public: static double GetResult(double A, double B, char operate) { double result = 0; switch(operate) { case '+': result = A + B; break; case '-': resul... 阅读全文