工厂模式(C++)
来源:互联网 发布:建筑行业证书 知乎 编辑:程序博客网 时间:2024/04/24 12:52
简述
工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现类,选择判断的问题在客户端,想要增加功能,修改客户端。而简单工厂是在内部进行逻辑判断。
场景说明
现在有苹果和梨两种水果,而水果的生产流程复杂,所以需要水果工厂来生成。现开一个苹果工厂和梨工厂,各自生成自己的水果,当用户需要水果时,直接向工厂提出生产就可以了。不必和每个水果打交道
UML类图
对象职责
client:用户,按照自己的需求,告诉合适工厂生成水果
Plant:抽象水果
Fruits:抽象工厂
ApplePlant:苹果工厂,用户依赖苹果工厂获得苹果
Apple:苹果,用户最后得到的水果
代码实现
#include <stdio.h>#include <iostream>//抽象水果class Fruits{public:Fruits(){};virtual void show(){};private:};//苹果class Apple : public Fruits{public:Apple(){};virtual void show(){std::cout << "我是苹果" << std::endl;}private:};//梨class Pear : public Fruits{public:Pear(){};virtual void show(){std::cout << "我是梨" << std::endl;}private:};//抽象工厂class Plant{public:Plant(){};virtual Fruits* getManufactureFruits();private:};//苹果工厂class ApplePlant{public:ApplePlant(){};virtual Fruits* getManufactureFruits(){return new Apple;}private:};//梨工厂class PearPlant{public:PearPlant(){};virtual Fruits* getManufactureFruits(){return new Pear;}private:};int maingongc(){ApplePlant *applePlant = new ApplePlant;Fruits *apple = applePlant->getManufactureFruits();apple->show();PearPlant *pearPlant = new PearPlant;Fruits *pear = pearPlant->getManufactureFruits();pear->show();while (1);return 0;}
阅读全文
0 0
- 工厂模式 (C#)
- 工厂模式(C++)
- 工厂模式(C++)
- 工厂模式(C++)
- 简单工厂模式(c++)
- 抽象工厂模式(C#)
- 简单工厂模式(C#)
- 设计模式 - 简单工厂模式(C++)
- 设计模式c++(一)----工厂模式
- 设计模式之简单工厂,工厂方法模式(c++)
- 工厂模式-C-工厂方法
- 抽象工厂模式实例(C#)
- 工厂方法模式---重写计算器(C++)
- 工厂模式(C/C++实现理解)
- 简单工厂模式(C语言实现)
- 工厂函数模式 (C语言实现)
- 抽象工厂模式 (C语言实现)
- 简单工厂模式的计算器(C++)
- Macbook Air在SSD上安装win10系统教程
- 2.3 Activity的使用技巧汇总
- J
- 救救小易-网易python(简单逻辑)
- 2.4 一篇文章囊括所有系统常见的Activity
- 工厂模式(C++)
- 倍增
- jQuery事件之on()方法绑定多个选择器,多个事件
- 文档
- Java作业-交通工具
- 3.1 Fragment理论知识及其生命周期,看这一片就够了
- 我们为什么要研究docker
- noip2015神奇的幻方
- 9-23 线段树***, 2-SAT, 两端小技巧