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

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

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


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


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


总结:


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


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


缺点:


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

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


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

相关文章
|
3月前
|
Java 程序员
让我们一起探讨Java多态的奥秘,看看它是如何打破“一刀切”的局限,让我们的代码更加生动多彩
让我们一起探讨Java多态的奥秘,看看它是如何打破“一刀切”的局限,让我们的代码更加生动多彩
42 5
|
3月前
|
人工智能 达摩院 自然语言处理
类与类之间的协作模式问题之策略模式影响我们在工作中决策过程的问题如何解决
类与类之间的协作模式问题之策略模式影响我们在工作中决策过程的问题如何解决
|
5月前
|
设计模式 Java 数据库
Java设计模式:桥接模式实现灵活组合,超越单一继承的设计之道(十)
Java设计模式:桥接模式实现灵活组合,超越单一继承的设计之道(十)
|
6月前
|
Java 测试技术 程序员
2024提升计划|优秀程序员的10大共性特征
在设计代码时,很多开发者并没有考虑到"容易测试"这个因素,可测试性不强。如果工程师在开发逻辑的过程中同时考虑如何轻松地进行测试,那么编写出的代码将具备良好的可读性和简单性,并经过精心设计,而不仅仅是"能工作"而已。测试所得到的主要好处发生在考虑测试和编写测试的时候,而不是在运行测试的时候!
|
6月前
|
设计模式
二十三种设计模式全面解析-抽象工厂模式:创造无限可能的工厂之道
二十三种设计模式全面解析-抽象工厂模式:创造无限可能的工厂之道
【C#本质论 八】类-从设计的角度去认知(多态)
【C#本质论 八】类-从设计的角度去认知(多态)
66 0
|
编译器 C#
【C#本质论 七】类-从设计的角度去认知(继承)(下)
【C#本质论 七】类-从设计的角度去认知(继承)(下)
67 0
|
存储 开发框架 .NET
【C#本质论 七】类-从设计的角度去认知(继承)(上)
【C#本质论 七】类-从设计的角度去认知(继承)(上)
91 0
|
编译器 C#
【C#本质论 六】类-从设计的角度去认知(封装)(下)
【C#本质论 六】类-从设计的角度去认知(封装)(下)
87 0