C语言简单工厂方法编程案例解析

1 简介     简单工厂方法定义一个用于创建对象的类,该类接受一个参数,通过参数决定创建不同的对象。     gof并没有把简单工厂方法定义为23种设计模式之一,可以认为简单工厂方法是工厂方法的简化形式。     为了体现简单工厂方法和工厂方法的区别和联系,此处把简单工厂方法先单独讲一下。
2 模拟场景
假设你要生产电脑,电脑由硬盘、内存条、cpu、主板的部件组成。你为了保证供应链可靠,每种部件都选择了至少两家供应商。比如: 硬盘供应商 seagate、toshiba 内存条供应商 samsung、crucial cpu供应商 intel、amd 主板供应商 intel、amd     此处列出多个部件是为了后面讲解工厂方法、抽象工厂方法时使用同一个模拟场景。本章讲简单工厂方法暂时不需要涉及这么多部件,所以仅以硬盘这一个部件为例进行讲解。
3 实现的思路
硬盘就是要创建的对象(即:产品)。为了让不同供应商提供的硬盘可以通用,要定义一个硬盘产品类,并让不同供应商的硬盘都继承硬盘产品类的接口。     还需要定义一个创建硬盘对象的类(即:工厂)。工厂类根据参数决定创建哪家供应商的硬盘对象。
4 实现硬盘对象创建
参与者: (1)product: harddisk 定义硬盘对象的接口 (2)concrete product: seagateharddisk, toshibaharddisk 实现不同供应商的硬盘 (3)simplefactory: harddiskfactory 根据参数,创建不同供应商的硬盘对象     uml:
harddisk代码示例:     hard_disk.h:


洗地机语音芯片,OTP语音ic选型——NVG080W
泰克示波器MDO3014面板及其功能的详细介绍
AI改变物流的六种方式
全球首款软件定义工业控制服务器
网络安全的相关技术有哪些
C语言简单工厂方法编程案例解析
从安装到调试,学会使用天然气报警器的全过程!
物联网和人工智能在安防领域的造就了什么
带过载保护连续与点动混合的控制电路
美国为什么在5G通信技术中落后了?
义乌市推进5G网络向农村延伸,基本实现镇街和行政村全覆盖
模拟信号隔离方法的总结
输出电压为什么要偏移?差分电路原理解析
如何构建Arduino无线网关开发平台
电动汽车“隐形的翅膀”:智能微网技术与无线电传输技术的结合
对于三防产品而言,它的外观设计需要考虑哪些方面
今日传感财经:光学仪器概念报跌;光学传感器概念报跌;可穿戴传感器板块报跌
上汽集团和宁德时代在动力电池领域的合作上升至一个新台阶
SMFX智能灯泡 自由变换1600万以上颜色
M5277-C3313U-250BG压力传感器测量