什么是工厂模式?你以为工厂模式很简单

很多人认为工厂模式很简单 , 它只是有一个构造工厂来帮助我们进行对象构造 。然后尝试回答以下问题:
如果你能很好地回答以上四个问题 , 那么就没有必要继续看这篇文章了 。否则 , 我建议你仔细研究这篇文章 。
1 三种工厂模式
工厂模式可以分为三类:
这三种模式自上而下逐渐抽象 , 更加通用 。
GOF 在《设计模式》一书中将工厂模式分为两类:工厂方法模式( )和抽象工厂模式( ) 。
将简单工厂模式 ( ) 视为工厂方法模式的一个特例 , 并将两者组合在一起 。
这三种工厂模式都是设计模式分类中的创造模式 。
创建模式( )抽象了类的实例化过程 , 可以将软件模块中对象的创建与对象的使用分开 。为了让软件的结构更加清晰 , 外界只需要知道它们对这些对象的通用接口 , 而不需要知道具体的实现细节 , 从而使整个系统的设计更符合单一职责的原则.
创建模式在创建什么(什么)、谁创建它(谁)以及何时创建(何时)方面为软件设计人员提供了尽可能多的灵活性 。
创建模式隐藏了如何创建类实例的细节 , 通过隐藏对象的创建和组合方式使整个系统独立 。
工厂模式是最重要的创建模式 。工厂模式的主要作用是帮助我们实例化对象 。之所以名称中包含工厂模式四个字 , 是因为对象的实例化过程是由工厂实现的 , 新的操作由工厂代替 。
这样做的好处是它封装了对象的实例化细节 , 特别是在实例化复杂或者对象的生命周期应该集中管理的情况下 。它将以尽可能少的修改为您的系统带来更大的可扩展性 。
接下来 , 我们将分别介绍这三种工厂模式 。
2 简单工厂模式
简单工厂模式是一种创建模式 , 也称为静态工厂方法()模式 。简单的工厂模式是工厂对象决定创建产品类的哪个实例 。简单工厂模式是工厂模式家族中最简单实用的模式 , 可以理解为不同工厂模式的特殊实现 。
在介绍简单工厂模式之前 , 我们尝试解决以下问题:
现在我们将以面向对象的形式定义计算器 , 以解耦算法 。使用的主要类如下:

什么是工厂模式?你以为工厂模式很简单

文章插图

什么是工厂模式?你以为工厂模式很简单

文章插图

什么是工厂模式?你以为工厂模式很简单

文章插图
当我想执行加法操作时 , 我可以使用这样的代码:
当我需要执行减法运算时 , 我创建了一个类 。也就是说 , 当我想使用不同的操作时 , 我需要创建不同的类 , 并且我需要明确知道类的名称 。
那么这种创建类的重复工作其实可以放到一个统一的工厂类中 。简单工厂模式具有以下优点:
简单工厂模式实现
简单工厂模式其实就像它的名字一样简单 。我们来看看它的组成:
:这是这个模型的核心 , 包含一定的业务逻辑和判断逻辑 。在java中 , 它通常由一个具体的类来实现 。( )
:一般是具体产品继承的父类或者实现的接口 。在java中 , 它是通过接口或抽象类来实现的 。( )
:工厂类创建的对象就是这个角色的一个实例 。由java中的具体类实现 。使用类图清楚地表示它们之间的关系(\等)
关系图如下:
什么是工厂模式?你以为工厂模式很简单