美文网首页
简单工厂

简单工厂

作者: 厚积方能薄发 | 来源:发表于2020-07-22 08:12 被阅读0次

一、请你说一下,什么是简单工厂

这个设计模式主要是用来创建对象实例的,他的核心思想是“封装隔离”,本质是“选择实现”。

二、具体说一下“封装隔离”

举个例子:
在面向对象语言中经常会用到接口,接口将外部调用和内部实现分开了,只要接口不变,内部实现的变化就不会影响到外部的应用,从而使得系统更灵活,具有更好的扩展性和可维护性。接口的思想就是“封装隔离”。

简单工厂中的封装是指被隔离体行为的封装。
具体来说就是不接触具体的实现类,通过工厂来创建指定对象。 具体实现变化后也不用变动客户端了。

三、选择实现

上层不用自己创建对象,选择一个类型,由工厂来创建具体对象。比如:我要一个三角形,我要一个正方形。

四、这个设计模式有什么优劣呢

优点

  • 松散耦合
  • 下层变动不影响上层

缺点

  • 工厂类集中了所有实例(产品)的创建逻辑,一旦这个工厂不能正常工作,整个系统都会受到影响。
  • 违背“开闭原则”,一旦添加新产品就不得不修改工厂类的逻辑,这样就会造成工厂逻辑过于复杂。

五、什么情况下应该用这种模式

  • 松散耦合,降低客户端对子系统依赖时。
  • 职责集中管控:
    • 举个例子:比如更新皮肤的时候,要重新创建大量的对象,这个时候选用简单工厂。
    • Flutter 有一个插件叫 FlutterJsonBeanFactory,是用来根据接口返回 json 数据创建 model 的,由于 Dart 没有反射机制,这种情况非常适合用简单工厂来实现。

六、开发中有用到简单工厂吗

JDK 源码中的 Calendar 类:
根据不同的地区来创建不同的日历对象,就好比日历这个工厂,生产着世界上各地区的日历,我需要这个地区日历,我只需要传参数告诉工厂即可,不需要知道日历制作过程和实例的过程。
该示例既需要创建一批对象,又需要对职责进行集中管控,所以选用简单工厂。

相关文章

  • 工厂模式理解

    工厂模式分为简单工厂、工厂模式、抽象工厂三种层级概念。简单工厂不属于23种设计模式,抽象工厂才是。 简单工厂 简单...

  • 设计模式-工厂模式

    设计模式1 设计模式2 工厂模式 工厂模式可简单的分为三类:简单工厂,工厂方法,抽象工厂 简单工厂模式 定义 简单...

  • 工厂模式

    首先,简单工厂模式不属于23中涉及模式,简单工厂一般分为:普通简单工厂、多方法简单工厂、静态方法简单工厂。 A、简...

  • [Android]三种工厂模式总结。

    Android中,工厂模式分为三种:简单工厂模式、工厂方法模式、抽象工厂模式。 一.简单工厂模式。 定义:简单工厂...

  • 工厂模式

    什么是工厂模式? 工厂模式分为三种:简单工厂工厂方法抽象工厂今天主要介绍的简单工厂:简单工厂(SimpleFact...

  • 设计模式(java)- 单例模式

    之前学习是简单工厂模式、工厂方法模式、抽象工厂模式,复习一下 简单工厂模式 简单工厂模式大概就是创建一个简单工厂类...

  • 2016.06笔记

    iOS设计模式之工厂模式(简单工厂,工厂方法,抽象工厂) 简单工厂:简单工厂模式的工厂类一般是使用静态方法,通过接...

  • 工厂模式——IOS版

    一、前言 工厂模式种类:简单工厂、工厂方法、抽象工厂 IOS中的应用:类簇 二、简单工厂 介绍:简单工厂模式是属于...

  • 相近设计模式比较

    设计模式干货: 简单工厂模式 vs. 工厂模式 vs. 抽象工厂模式简单工厂和工厂模式区别? 简单工厂没有多个子类...

  • 设计模式-工厂模式

    一、工厂模式分类 简单工厂模式 工厂方法模式 抽象工厂模式 二、简单工厂模式 简单工厂就是讲需要new对象的那段代...

网友评论

      本文标题:简单工厂

      本文链接:https://www.haomeiwen.com/subject/lsgakktx.html