简单工厂模式

不同类型下创建对应的不同的对象,得到不同的结果,就叫简单生产模式

比如

定义一个接口,叫A,里面有方法a,返回int类型

类B1实现A接口,也实现a方法,里面做的是加法运算
类B2实现A接口,也实现a方法,里面做的是减法运算
类B3实现A接口,也实现a方法,里面做的是乘法运算
类B4实现A接口,也实现a方法,里面做的是除法运算

定义一个类叫SimpleFactory,里面属性是A,有个方法叫cal

伪代码如下:

Class SimpleFactory{private A a;public static int cal(int type){if(type == 1){a = new B1();}else if(){a = new B2();}else if(){a = new B3();}else if(){a = new B4();}return a.a();}
}

这样调用后,只要确定type等于几,比如要算减法,type=2,
那么只要使用SimpleFactory.cal(2),就能得到对于计算的答案
由于cal方法一般都做成静态方法,所以简单工厂模式,有时也叫静态工厂模式。

优缺点

简单工厂类的优点就是简单实用。
缺点就是代码耦合大,如果要新增一个类,就需要在工厂类中新增,这样就是违背了开放-封闭原则了。

源码应用

其实很多地方都用到了简单工厂模式,比如JDK源码中有个类java.util.Calendar。
我们直接看源码:

静态方法getInstance()

这个说明getInstance()应该是一个默认的方法,其实真正的方法,是有两个参数的,一个是时区,一个是地区

下面红框这个,就是根据不同的入参,返回了不同的Calendar的子类,就是简单工厂模式。

[设计模式] ------ 简单工厂模式相关推荐

  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. 【转】父类子类指针相互转换问题
  2. Vue全家桶 + webpack 构建单页应用初体验
  3. 择天记手游的服务器维护世界,1130停服更新公告
  4. matlab提取图像中的一部分并移动,在Matlab中从图像中提取对象
  5. 实现多线程爬取数据并保存到mongodb
  6. 5次方用计算机,用科学计算器来求三的五次方的值,按键顺序是( )?
  7. 15款Cocos2d-x游戏源码
  8. C# MessageBox 使用总结
  9. Python+数据分析+机器学习,数据科学家最少必要知识库!
  10. 13.MongoDB之Gridfs
  11. Android真正的静默安装
  12. STM32工具使用---STVP烧录工具
  13. 《GPU编程与CG语言之阳春白雪下里巴人》阅读笔记 第五章+第六章
  14. 《硅谷钢铁侠》读书摘录(一)
  15. 物联网(IoT)行业的决策管理应用
  16. 景观分析(二)——Patch Analyst 5
  17. 银河麒麟中的录屏软件
  18. 如何遍历java对象属性
  19. 程序变量命名法:匈牙利命名、驼峰式、帕斯卡命名法
  20. uni-app卡片式轮播

热门文章

  1. Codeforces 1139F Dish Shopping 树状数组套平衡树 || 平衡树
  2. Sublime Text 3 搭建 React.js 开发环境
  3. 机器学习基石笔记5——为什么机器可以学习(1)
  4. android 自定义 radiobutton 文字颜色随选中状态而改变
  5. silverlight 缺少对象错误
  6. flex和js进行参数传递
  7. jstl与EL表达式处理字符串
  8. CVS 客户端使用手册
  9. JDBC链接SQLServer2005 Express
  10. 利用子网掩码划分子网