(1)定义
定义一个简单工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。
(2)结构
简单工厂模式有以下的结构:
- 工厂(Factory):根据客户提供的具体产品类的参数,创建具体产品实例;
- 抽象产品(AbstractProduct):具体产品类的基类,包含创建产品的公共方法;
- 具体产品(ConcreteProduct):抽象产品的派生类,包含具体产品特有的实现方法,是简单工厂模式的创建目标。
(3)实例
SimpleFactory.h
#ifndef SIMPLEFACTORY_H#define SIMPLEFACTORY_H#include <iostream>#include <string>//抽象产品类AbstractProduct(并非真正意义上的抽象类,含有纯虚函数才是抽象类)class AbstractSportProduct{public: AbstractSportProduct(){} ~AbstractSportProduct(){} //虚函数 virtual void printName(){} virtual void play(){}};//具体产品类Basketballclass Basketball :public AbstractSportProduct{public: Basketball(){} ~Basketball(){} //具体实现方法 void printName(); void play();};//具体产品类Footballclass Football :public AbstractSportProduct{public: Football(){} ~Football(){} //具体实现方法 void printName(); void play();};//工厂类class Factory{public: Factory(){} ~Factory(){} AbstractSportProduct *getSportProduct(std::string productName);};
没有评论:
发表评论