设计模式的C++实现之工厂方法模式2013-08-02工厂方法模式不同于简单工厂模式的地方在于工厂方法模式把对象的创建过程放到里子类里。这样工厂父对象和产品父对象一样,可以是抽象类或者接口,只定义相应的规范或操作,不涉及具体的创建或实现细节。其类图如下:

实例代码为:
#pragma onceclass IProduct{public:IProduct(void);virtual ~IProduct(void);};#pragma once#include "iproduct.h"class IPad :public IProduct{public:IPad(void);~IPad(void);};#pragma once#include "iproduct.h"class IPhone :public IProduct{public:IPhone(void);~IPhone(void);};
#pragma once#include"IProduct.h"class IFactory{public:IFactory(void);virtual ~IFactory(void);virtual IProduct* getProduct();};#pragma once#include "ifactory.h"class IPadFactory :public IFactory{public:IPadFactory(void);~IPadFactory(void);virtual IProduct* getProduct();};#pragma once#include "ifactory.h"class IPhoneFactory :public IFactory{public:IPhoneFactory(void);~IPhoneFactory(void);virtual IProduct* getProduct();};