
设计模式
JeremiahSu
这个作者很懒,什么都没留下…
展开
-
面向对象设计
单例模式设计单例模式确保一个类只有一个实例,并且只能够通过该类的内部方法来访问该实例class A{ public: statcic A getInstance(){ //通过该方法获取类的实例 if(_instance == null){ _instance = new A(); } return _instanc原创 2015-09-07 23:10:03 · 308 阅读 · 0 评论 -
设计模式之策略模式
策略模式中:将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式把行为和环境分开。 //strategy.h class Strategy{} public: Strategy(); virtual ~Strategy() { cout<<"straegy"<<endl;原创 2015-09-18 10:46:38 · 289 阅读 · 0 评论 -
Prototype
Prototype 模式也正是提供了自我复制的功能,就是说新对象的创建可以通过已有对象进行创建。Prototype 模式提供了一个通过已存在对象进行新对象创建的接口(Clone) // Prototype class Prototype{ public: virtual ~Prototype(); virtual Prototype *Clone() const = 0; prot原创 2015-09-18 11:28:35 · 307 阅读 · 0 评论 -
Factory && AbstractFactory
简单工厂: 简单工厂模式Simple Factory根据提供给它的数据,返回一个类的实例。通常它返回的类都有一个公共的父类(或者接口对象) 工厂方法:定义一个用于创建对象的接口,让接口子类通过工厂方法决定实例化哪一个类。 class Product{public: virtual ~Product() =0 ; protected: Product(); private:原创 2015-09-18 12:42:30 · 333 阅读 · 0 评论 -
Composite
合成模式:将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性. 合成模式就是一个处理对象的树结构的模式。合成模式把部分与整体的关系用树结构表示出来。合成模式使得客户端把一个个单独的成分对象和由他们复合而成的合成对象同等看待。 //Component class Component{ public: Component(){}原创 2015-09-18 14:07:18 · 349 阅读 · 0 评论 -
Proxy
代理模式:代理模式给某一个对象提供一个代理对象,并由代理对象控制对源对象的引用。代理就是一个人或一个机构代表另一个人或者一个机构采取行动。某些情况下,客户不想或者不能够直接引用一个对象,代理对象可以在客户和目标对象直接起到中介的作用。客户端分辨不出代理主题对象与真实主题对象。代理模式可以并不知道真正的被代理对象,而仅仅持有一个被代理对象的接口,这时候代理对象不能够创建被代理对象,被代理对象必须有系统原创 2015-09-18 15:04:15 · 284 阅读 · 0 评论