一、简介
工厂模式属于创建型模式,大致上可以分三类:
1)、简单工厂模式(Simple Factory)
2)、工厂方法模式(Simple Factory)
3)、抽象工厂模式(Simple Factory)
这三种模式是逐步抽象,并且更具一般性。另有一种分法就是将简单工厂模式看作是工厂方法的一种特例,归为一类模式。如下是使用工厂模式的情况:
1.在编码时不能预见需要创建哪种类的实例
2.系统不应依赖于产品类实例如何被创建、组合和表达的细节,对于使用者来说是透明的
二、目标
目标:提高内聚(Cohesion)和松耦合(Coupling)
最重要的功能:
1)、定义创建对象的接口,封装了对象的创建;
2)、使得具体化类的工作延迟到了子类中
三、实现
简单工厂
enum CTYPE {PRODUCT_A, {PRODUCT_B}; class Product { public: virtual void Display() = 0;}; class ProductA: public Product{ public: void Display() { cout<<"Display A"<
工厂方法
enum CTYPE {PRODUCT_A, {PRODUCT_B}; class Product { public: virtual void Display() = 0;}; class ProductA: public Product{ public: void Display() { cout<<"Display A"<
抽象工厂
enum CTYPE {PRODUCT_A, {PRODUCT_B}; class Product { public: virtual void Display() = 0;}; class ProductA: public Product{ public: void Display() { cout<<"Display A"<
如下是本人用模板实现的通用的性工厂模式:(推荐大家采用本实现)
#ifndef CRREATEFACTORY_H#define CRREATEFACTORY_H#include