代码改变世界

随笔档案-2011年8月2日

C++设计模式-抽象工厂

2011-08-02 21:03 by htc开发, 173 阅读, 收藏,
摘要: 定义提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。结构理解1.AbstractFactory是抽象工厂类,声明创建产品族的接口。具体工厂创建具体的产品族(Product Family),可以创建出分属于不同产品等级的一个产品族中的所有对象。ConcreteFactory1和ConcreteFactory2分别生产2个不同产品族。举例:手机工厂生产的产品族中,产品有Linux系统的手机和Windows系统的手机。PC工厂生产的产品族中,产品有Linux系统的PC和Windows系统的PC。2.AbstractProductA和AbstractProductB是产品基类。它们 阅读全文

C++设计模式-单件

2011-08-02 19:38 by htc开发, 227 阅读, 收藏,
摘要: 定义单件(Singleton)模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。结构理解1.Singleton模式用来取代全局静态变量。C++通过静态成员变量来实现类实例全局唯一性。2.instance()方法是单件提供的唯一调用入口。要点1.为了防止外界调用产生多个实例,将构造方法、析构方法、拷贝构造方法、赋值重载方法都作为protected。2.instance()方法产生对象方式有两种:使用局部static对象,生命期在首次进入局部生命期产生,在程序结束时销毁;通过new产生新对象,在析构方法中delete对象。3.获取单件实例调用方式:Singleton::instance() 阅读全文

C++设计模式-工厂方法

2011-08-02 16:55 by htc开发, 168 阅读, 收藏,
摘要: 定义定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法(Factory Method)使一个类的实例化延迟到其子类。也叫虚构造器(Virtual Constructor)结构理解1.Product是工厂方法生产产品的抽象基类。2.Creator是生产产品的工厂对象抽象基类。Creator提供创建虚方法即工厂方法FactoryMeothod()。FactoryMeothod()由派生类(ConcreteCreator)具体实现,生产对应的具体产品(ConcreteProduct)。3.ConcreteProduct是继承Product的具体产品。4.ConcreteCreator是生 阅读全文