3.c++模式设计-抽象工厂模式
非本人原创,如有侵权,请联系删除,仅做参考理解使用.
//
// Created by xhome on 2020/4/24.
//
#include <iostream>using namespace std;//抽象父类
class Fruit{public:virtual void sayName()=0;};//本质是用到了多态,父类的指针指向子类的对象.
class AbFactory {public:virtual Fruit* CreateBanana() = 0;virtual Fruit* CreateApple() = 0;
};//子类1
class SouthBanana : public Fruit{public:virtual void sayName(){cout << "I am south banana" << endl;}
};class NorthBanana : public Fruit{public:virtual void sayName(){cout << "I am north banana" << endl;}
};//子类2
class SouthApple : public Fruit {public:virtual void sayName(){cout << "I am south apple" << endl;}};class NorthApple : public Fruit {public:virtual void sayName(){cout << "I am north apple" << endl;}};class NorthFactory :public AbFactory{public:virtual Fruit * CreateBanana(){return new NorthBanana;}virtual Fruit * CreateApple(){return new NorthApple;}};class SouthFactory :public AbFactory{public:virtual Fruit * CreateBanana(){return new SouthBanana;}virtual Fruit * CreateApple(){return new SouthApple;}};int main() {Fruit * fruit =NULL;AbFactory * af = NULL;af = new SouthFactory;fruit = af->CreateApple();fruit->sayName();delete fruit;af->CreateBanana();fruit = af->CreateBanana();fruit->sayName();delete fruit;af = new NorthFactory;fruit = af->CreateApple();fruit->sayName();delete fruit;fruit = af->CreateBanana();fruit->sayName();delete fruit;return 0;
}
3.c++模式设计-抽象工厂模式相关推荐
- 021 设计模式之工厂方法模式,抽象工厂模式的区别
简单工厂模式,工厂方法模式和抽象工厂模式的异同 简单工厂模式,工厂方法模式和抽象工厂模式都是属于创建型设计模式,这三种创建型模式都不需要知道具体类.我们掌握一种思想,就是在创建一个对象时,需要把容易发 ...
- [19/04/23-星期二] GOF23_创建型模式(工厂模式、抽象工厂模式)
一.工厂模式(分为:简单工厂模式.工厂方法模式.抽象工厂模式) 实现了创建者和调用者的分离 核心本质:1.实例化对象,用工厂方法代替new操作:2.将选择实现类.创建对象统一管理和控制,从而将调用者跟 ...
- JavaScript 前端简单工厂模式、工厂方法模式、抽象工厂模式优缺点及详解 — 设计模式《二》
工厂模式 前言:就前端 JavaScript 语言来说,可以把简单工厂模式.工厂方法模式.抽象工厂模式归纳为一种即工厂模式: 一. 简单工厂模式 介绍/概述: 简单工厂模式的工厂类一般是使用静态方法, ...
- 初识设计模式之简单工厂模式、工厂方法模式、抽象工厂模式
简单工厂模式 工厂方法模式 抽象工厂模式 工厂顾名思义就是生产产品的意思,根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式.该模式 ...
- 工厂模式——简单工厂模式、工厂方法模式和抽象工厂模式
1.简述 工厂模式包括简单工厂模式.工厂方法模式和抽象工厂模式,属于创建型模式. 2.不使用工厂模式 (1)类图分析 一个接口Computer,接口有两个实现类HP和Apple,同时有一个测试类Cli ...
- 设计模式之工厂方法模式、抽象工厂模式的概念和实现及使用“反射技术+读取配置文件”的方法对工厂模式进行改进(软件工程综合实践课程第三周个人作业)
文章目录 一.实验目的 二.知识总结 1.工厂方法模式简介 2.抽象工厂模式简介 3.工厂模式小结 4.利用"反射技术+读取配置文件"的方法改进程序 三.实验内容 1. 工厂模式实 ...
- 设计模式之工厂模式(工厂方法模式、抽象工厂模式)
工厂模式 所谓工厂,就是将零件组装成产品的地方. 建一个对象常常需要复杂的过程,所以不适合包含在一个复合对象中.创建对象可能会导致大量的重复代码,可能会需要复合对象访问不到的信息,也可能提供不了足够级 ...
- 【软件设计模式】工厂模式(简单工厂模式、一般工厂模式、抽象工厂模式)
概述: 工厂模式把对象的创建交由某个特定的类来实现,该类为工厂类,该类的方法称为工厂方法,仅仅负责创建对象,从而将客户端复杂的对象创建语句实现解耦.责任分离,方便扩展和维护. 分类: 工厂模式分为简单 ...
- 设计模式之——简单(静态)工厂模式和抽象工厂模式
文章目录 [关于设计模式] 设计模式的诞生 设计模式概念与解读 设计模式的原则 [关于工厂模式] 简单工厂(静态工厂)模式的概念 抽象工厂模式 工厂模式的使用时机和注意事项 给自己的思考 [关于设计模 ...
最新文章
- if you feel lonely
- 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况...
- http:(5):http状态码
- vb.net 弹出对话框 修改按钮名_Microsoft Excel怎么批量快速修改批注?
- 浅析java垃圾回收机制
- python数据读写 panda(to_csv和read_csv)【读取dat文件】【写入dat文件】【非csv文件并且有多列数据时】
- Java中StringBuffer类的常用方法
- vs201X的TFS(Team Foundation Server) 设置为:不自动签出
- 圣思园【深入JVM】笔记-第一课-论学习方法
- iphone 竖屏的视频转换为横屏
- 利用pdf-poppler和printJS完成pdf批量打印
- 印章仿制工具_仿制图章工具怎么用
- 1.3 基于协同过滤的电影推荐案例
- 【测试开发】Python—logging日志封装
- http 301、302、304、400、405、415状态码解释
- PyCharm连接MySQL数据库的时候,驱动下载失败
- java计算机毕业设计五金机电市场批发零售管理信息系统源程序+mysql+系统+lw文档+远程调试
- 2018codeM美团初赛B轮 4.神奇盘子
- python模块之HTMLParser简介
- 健身管理,让管理更高效更简单
热门文章
- java 线程退出cmd_java 线程的终止与线程中断
- python数据收集整理教案_《数据收集整理(例1)》教案
- 都匀中专学计算机,都匀计算机专业中专学校学几年
- python求极值(极大值、极小值)
- 注意力机制学习(一)——通道注意力与pytorch案例
- python取两个set的并集、交集、差集
- windows无法移动修复此计算机,无法安装Windows 10移动创作者更新[修复] | MOS86
- Kubernetes架构及相关服务详解
- 小程序--计算正负数个数
- ios 编译openssl支持arm64(转)