工厂模式
来源:互联网 发布:sql 表字段添加注释 编辑:程序博客网 时间:2024/06/16 17:20
1、 概念
工厂方法模式同样属于类对的创建型模式又被称为多态工厂模式。工厂方法模式的意义是定义一个创建产品对象的接口,将实际创建对象工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现
的接口,这样进一步抽象化的好处是使得工厂方法模式系统在不修改具体工厂角色的情况下引进新产品。
2、类图角色和职责
(1)、抽象工厂角色:工厂方法模式的核心,任何工厂类必须实现这个接口欧。
(2)、具体工厂角色:具体工厂类是抽象工厂的一个实现,负责产品实例化产品对象。
(3)、抽象角色:工厂方法模式所创建的所有对象的父类,它负责所有父类所描述的共有的公共接口。
(4)、具体产品角色:工厂方法模式所创建的具体实例对象。
3、案例:
#include<iostream>using namespace std;class Fruit{public:virtual void sayname() = 0;};class Banan :public Fruit{public:void sayname(){cout << "我是Banana" << endl;}};class Apple :public Fruit {public:void sayname(){cout << "我是Apple" << endl;}};class AbFactory{public:virtual Fruit* CreatFactory() = 0;};class AppleFactory:public AbFactory{public:Fruit* CreatFactory(){return new Apple;}};class BananaFactory :public AbFactory{public:Fruit* CreatFactory(){return new Banan;}};class Pear:public Fruit{public:void sayname(){cout << "我是Pear" << endl;}};class PearFactory :public AbFactory{public:Fruit* CreatFactory(){return new Pear;}};int main(void){AbFactory *factory = NULL;Fruit *fruit = NULL;// 吃香蕉factory = new BananaFactory;fruit = factory->CreatFactory();fruit->sayname();delete fruit;delete factory;// 吃梨factory = new PearFactory;fruit = factory->CreatFactory();fruit->sayname();delete fruit;delete factory;return 0;}
阅读全文
0 0
- 工厂模式 -- 工厂方法
- 工厂模式 -- 抽象工厂
- 工厂模式-简单工厂
- 工厂模式-工厂方法
- 工厂模式:静态工厂
- 工厂模式-简单工厂
- 工厂模式-抽象工厂
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 工厂模式-静态工厂
- 工厂模式-抽象工厂
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 设计模式
- Python数据挖掘与机器学习_通信信用风险评估实战(1)——读数据
- 字符串问题---在有序但含有空的数组中查找字符串
- LeetCode No.61 Rotate List
- IOS证书分析
- 工厂模式
- 二叉树的镜像
- zzuli-2178- GJJ来签到
- iOS 算法 简单的二分法
- java对象的管理
- 关于VS2017编辑C++出现的各种问题
- Markdown 语法
- R-学习记录-数组
- DataSnap——利用TParams进行多表事务更新