想象的重要性(抽象工厂)

简介: 想象的重要性(抽象工厂)

在看到抽象工厂的时候,在这里面要注意的就是抽象二字,正是因为有了这个抽象才把多而复杂的问题给简单化了,在生活中经常看到一些系列性的东西,但是这些系列性的东西再生产的时候要如何方便呢,这个问题就是今天要说的最重要的事情,在代码的世界中也是一个道理,下面这张图就是解释这个问题的最好途径之一。


通过图中可以看到冰淇淋后面有很多种口味,就不一一列举了,首先我们在生产冰淇淋的时候就需要有一个工厂了,这个工厂是用来生产冰淇淋的,生产完冰淇淋以后我们需要有不同的口味已满足顾客需求吧,那就再创建一个专门负责口味调制的工厂,那这个口味调制可能就是多个了,毕竟为了满足效率就会让每个工厂只负责一件事情,完成上面这些步骤只需要把冰淇淋的份量再进行一个划分就好了,这也需要一个工厂来完成,其实在生活中可以发现这些步骤,最早出现的是以前的福特汽车生产线,每条生产线只负责一件事情,然后把汽车的生产步骤拆分成一步步的工作,把生产成本降到了当时极低,效率极大的提高。


所以抽象工厂也是把一个系列的产品进行抽象,然后根据抽象类的产品派生出多个具体产品,我们最开始的那个抽象工厂是不负责实际操作的,它只是一个接口,通过接口实现实际的工厂和实际产品。


总结:


抽象工厂模式是为了让创建工厂和一组产品与使用相分离,并可以随时切换到另一个工厂以及另一组产品;


抽象工厂模式实现的关键点是定义工厂接口和产品接口,但如何实现工厂与产品本身需要留给具体的子类实现,客户端只和抽象工厂与抽象产品打交道。


缺点:


规定了所有可能被创建的产品集合,产品族中扩展新的产品困难,需要修改抽象工厂的接口

增加了系统的抽象性和理解难度


以上这些都是看过一些关于抽象工厂的资料后进行的一个小理解,如有不足之处还请指出。

相关文章
|
2月前
|
Java 编译器 程序员
Java多态背后的秘密:动态绑定如何工作?
本文介绍了Java中多态的实现原理,通过动态绑定和虚拟方法表,使得父类引用可以调用子类的方法,增强了代码的灵活性和可维护性。文中通过具体示例详细解析了多态的工作机制。
78 4
|
6月前
|
算法 Java 程序员
Java多态:不只是代码,更是思想的碰撞!
【6月更文挑战第17天】Java的多态性展示了编程的哲学,通过抽象基类(如`AudioFile`、`Shape`、`Product`)和重写方法实现。案例中,音乐播放器利用多态统一处理不同音频格式,绘图软件优雅地绘制各种形状,电商系统灵活管理商品信息。多态简化代码,增强可扩展性,连接技术与设计,体现代码的灵活性和艺术性。
44 0
【C#本质论 八】类-从设计的角度去认知(多态)
【C#本质论 八】类-从设计的角度去认知(多态)
71 0
|
存储 开发框架 .NET
【C#本质论 七】类-从设计的角度去认知(继承)(上)
【C#本质论 七】类-从设计的角度去认知(继承)(上)
97 0
|
编译器 C#
【C#本质论 七】类-从设计的角度去认知(继承)(下)
【C#本质论 七】类-从设计的角度去认知(继承)(下)
71 0
|
存储 Java 程序员
【C#本质论 六】类-从设计的角度去认知(封装)(上)
【C#本质论 六】类-从设计的角度去认知(封装)(上)
114 0
|
编译器 C#
【C#本质论 六】类-从设计的角度去认知(封装)(下)
【C#本质论 六】类-从设计的角度去认知(封装)(下)
93 0
|
算法
11 类和对象练习之扑克模拟
11 类和对象练习之扑克模拟
93 0
|
设计模式 关系型数据库 Scala
咖啡店的项目引出装饰者模式 | 学习笔记
快速学习咖啡店的项目引出装饰者模式
咖啡店的项目引出装饰者模式 | 学习笔记
|
设计模式 算法 Java
Java设计模式-建造者模式 理论代码相结合
Java设计模式-建造者模式 理论代码相结合
175 0
Java设计模式-建造者模式 理论代码相结合