今天有点晚哈,周末跑去完了,回来洗澡 洗衣服 吃饭折腾了很长时间。

  周末去玩有点感慨啊,去称体重发现自己又胖了。。。 不行啊 要减肥了啊,学习固然重要,但是身体更重要啊,为了让自己以后不变成胖子,所以决定从明天开始每天晚上 要做点运动,坚持一边学习 一边减肥。加油。 努力去执行。光说不练假把式!

  好了来说说今天学习的内容吧,看标题都知道是简单工厂。

  定义:工厂模式专门负责将共同接口的类进行实例化,然后供客户端直接使用。

  工厂模式有以下几种形态:

  简单工厂(Simple Factory)模式

    通过传递给它的数据,返回几个可能类中的一个实例。

    (据说 就这个不是GoF 23个设计模式中的一员)

  工厂方法(Factory Method) 模式

    

    工厂类角色 Creator (LightSimpleFactory):在客户端的直接控制下创建产品对象。

    抽象产品角色 Product (Light):定义简单工厂创建的对象的父类共同拥有的接口,可以是接口、类、抽象类。

    具体产品角色 ConcreteProduct (BulbLight, TubeLight):定义工厂具体教工出来的对象。

  抽象工厂(Abstract Factory)模式

    

  在某些情况下可以由抽象类(基类)完成产品的创建。必要的时候还可以把全部都合在一起。

  再来说说优缺点:

  优点:
工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直
接创建产品对象的责任,而仅仅"消费"产品。简单工厂模式通过这种做法实现了对责任的分割。
缺点:
当产品有复杂的多层等级结构时,工厂类只有自己,以不变应万变,就是模式的缺点。因为工厂
类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。
同时,系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,有可能造成工厂逻辑过于复杂。
另外,简单工厂模式通常使用静态工厂方法,这使得无法由子类继承,造成工厂角色无法形成基
于继承的等级结构。

  挺多的 先看到这里,后面继续。

  要不还是做一下今天的总结吧:目前看到的这个工厂模式 好像就是通过一个控制器 去根据业务需要去创建对应的对象实体。然后这些对象实体都会继承一个公共的基类。好处是让客户端直接使用相应的产品,坏处就是 要些一对的调用判断逻辑。

转载于:https://www.cnblogs.com/zyj469470971/p/3176871.html

《设计模式》-简单工厂模式相关推荐

  1. JavaScript设计模式--简单工厂模式例子---XHR工厂

    JavaScript设计模式--简单工厂模式例子---XHR工厂 第一步,Ajax操作接口(目的是起一个接口检测作用) (1)引入接口文件 //定义一个静态方法来实现接口与实现类的直接检验 //静态方 ...

  2. 三角形圆形创建与擦除java_设计模式---------------简单工厂模式

    设计模式---------------简单工厂模式 一.题目(Question) 使用简单工厂模式设计一个可以创建不同几何形状(如圆形.方形和三角形等)的绘图工具,每个几何图形都要有绘制draw()和 ...

  3. 设计模式—简单工厂模式

    前言 简单工厂模式是一种比较容易理解的设计模式 简单工厂模式介绍 在设计模式中,简单工厂模式可以理解为负责生产对象的一个类,当使用new 关键字创建一个对象时,此时该类就依赖于这个对象,也就是他们间的 ...

  4. 设计模式 - 简单工厂模式

    文章目录 设计模式 - 简单工厂模式 1.意图 2.实例 1.创建颜色接口 - 定义生产的产品是什么 2.创建颜色枚举 - 定义生产哪些类型的产品 3.根据颜色枚举创建产品 - 根据产品清单生产产品 ...

  5. 设计模式--简单工厂模式

    什么是工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,我们在创建对象时不会对 ...

  6. C#设计模式--简单工厂模式

    设计模式: 简单工厂模式(Simple Factory Pattern) 介绍:简单工厂模式不是Gof23种设计模式之一.但它在实际的编程中经常被用到,而且思想也非常简单,下面简单举例说明: 简单工厂 ...

  7. C++设计模式--简单工厂模式

    概述 工厂模式:封装对象的实现.它可能是所有设计模式中最有用的模式之一了.这里要说的是简单工厂模式,又称为静态方法工厂模式,属于创建性模式.其原理就是通过传入的参数来判断应该创建什么对象. UML 类 ...

  8. 设计模式 简单工厂模式

    简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例.简单工厂 ...

  9. 面向对象编程设计模式--简单工厂模式讲解(历史上最简单明白的例子)

    工作之余,在看资料过程中发现一个极易理解的简单工厂模式的例子,自己亲自试练一番,感觉对这个设计模式不熟悉的朋友, 一看马上就知道是什么回事了. 简单工厂模式根据提供给它的数据,返回几个可能类中的一个类 ...

  10. java工厂模式 uml_深入浅出设计模式-简单工厂模式

    模式定义 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式定义了一个创建对象的类,由这个类来封装实例化 ...

最新文章

  1. 一篇长文带你在python里玩转Json数据
  2. 调参到头秃?你需要这份自动超参搜索技术攻略
  3. Item 9 Always override hashCode when you override equals HASHMAP扩展
  4. 关于通过DDMS向Android系统的模拟器的sdcard中导入mp3文件的问题
  5. Visual studio 打包
  6. Spring Data MongoDB级联保存在DBRef对象上
  7. 【C++基础学习】《C++ Primer》中的“有序型”
  8. InputStreamReader 和 OutputStreamWriter类用法简介,及演示。
  9. 拳王虚拟项目公社:网上比较容易挣到钱方式?虚拟资源项目是赚钱的最佳选择
  10. python中的@、-、*arg、**kwarg使用方法[探索1]
  11. java 第几周_java获取第几周
  12. python自动化办公设置_python自动化办公之 python操作Excel
  13. 》》css3--动画
  14. Java Map是否有序
  15. CAD图纸的缩放——缩放上一个命令
  16. transition使用
  17. 计算机硬盘换,电脑硬盘可以随便换吗
  18. Blender学习笔记(4)材质配色和打光渲染|blender
  19. xmind 8系列便携版:关联.xmind文件的打开方式后,打开文件会在当前文件夹下产生configuration等子目录的问题解决办法
  20. 盗版服务器系统防范勒索病毒,服务器防止勒索病毒

热门文章

  1. 列注释_技术贴 | 宏基因组分箱 (Binning)第四课——COG EC RNA注释统计
  2. video 全屏显示
  3. spring boot错误: 找不到或无法加载主类
  4. html文字自适应屏幕居中显示,DIV+CSS经典布局[宽度自适应][自动屏幕居中]的实现...
  5. oracle odi 资料档案库访问期间出现未分类的异常错误,oracle学习_基本语法
  6. android zxing-3.3.3的用法_Android使用RecyclerView实现复杂的多布局效果
  7. java的constructor怎么用,Java Constructor getDeclaringClass()用法及代码示例
  8. php pdo sql注入,「原创」PHP实战-PDO优化及 SQL注入
  9. 常见30种数学建模模型_11.12|认识数学模型与数学建模许可
  10. 新松机器人产业小镇_机器人行业迎来拐点,新松机器人如何“过冬”?丨亿欧读财报...