1.概念:建立一个工厂(一个函数或一个类方法)来制造新的对象,简单工厂模式静态工厂方法模式,存在的目的很简单:定义一个用于创建对象的接口。

(注意点:简单工厂模式的方法是静态的)

2.组成:

  1) 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑,用来创建产品
         2) 抽象产品角色:它一般是具体产品继承的父类或者实现的接口。         
         3) 具体产品角色:工厂类所创建的对象就是此角色的实例。在Java中由一个具体类实现。

3.场景:比如生产电视机-->只需要交给电视生产工厂

public class TvFactory(){public static Tv productTv(){TV tv=new TV();tv.setName("乐视");return tv;}
}

4.好处:能轻松方便地构造对象实例,而不必关心构造对象实例的细节和复杂过程。

5.缺点:由于简单工厂模式中只有一个工厂类来对应这些产品,随着新产品的加入,工厂类中就需要创建相应的业务逻辑,所以工厂类就很被动,程序员也很累。

转载于:https://www.cnblogs.com/talenter/articles/9569366.html

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

  1. 轻松看懂java设计模式简单工厂模式

    点击上方"好好学java",选择"置顶公众号" 优秀学习资源.干货第一时间送达! 精彩内容 java实战练习项目教程 2018微服务资源springboot.s ...

  2. Java设计模式 -- 简单工厂模式(SimpleFactory)

    一.什么是简单工厂模式 简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式.通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类. 二.模式中包含的角色及其职责 1.工厂(C ...

  3. Java——设计模式(简单工厂模式)

    * A:简单工厂模式概述* 简单工厂模式又叫静态工厂方法模式,它定义了一个具体的工厂类负责创建一些类的实例* B:优点* 客户端不需要再负责对象的创建,从而明确了各个类的职责* 简单来说,客户端你只需 ...

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

    1.实例化对象不需要new,用工厂模式 2.工厂模式分为(简单工厂模式,工厂方法模式,抽象工厂模式) package com.wuming.factory.simple;public interfac ...

  5. Java设计模式之 工厂模式(简单工厂模式)

    前一阵子学习了Java 中据说是最简单的设计模式的 单例模式,想一起讨论学习的小伙伴请点击这里: Java 设计模式之单例模式 那么今天就把学习的工厂模式记录下来 工厂模式: 实现了创建者和调用者的分 ...

  6. Java设计模式(工厂模式>抽象工厂模式和原型模式)

    Java设计模式Ⅱ 1.工厂模式 1.1 简单工厂模式 1.2 工厂方法模式 2.抽象工厂模式 3.总结 4.原型模式 4.1 原型模式 4.2 浅拷贝 4.3 深拷贝 5.建造者模式 1.工厂模式 ...

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

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

  8. Java 设计模式之工厂模式(二)

    原文地址:Java 设计模式之工厂模式(二) 博客地址:http://www.extlight.com 一.背景 本篇内容是 Java 设计模式创建型模式的第二篇.上一篇主题为 <Java 设计 ...

  9. java设计模式之工厂模式(UML类图分析+代码详解)

    大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...

最新文章

  1. php 长连接心跳_支持gRPC长链接,深度解读Nacos2.0架构设计及新模型
  2. CISCO HSRP
  3. 【听说是线段树】bzoj1012 [JSOI2008]最大数maxnumber
  4. set java底层实现_Java:List,Map,Set底层实现
  5. MYSQL创建、删除、修改索引语法
  6. aws cli 使用_学习AWS CLI –使用AWS CLI探索IAM用户,角色,策略
  7. 微信这项功能即将下线,赶快导出数据!
  8. 渗透测试——XP工具练习
  9. 2021-09-02语义分割 实例分割 全景分割
  10. .net web 开发平台- 表单设计器 一(web版)
  11. 计算机网络之物联网的特点及其主要应用领域
  12. Outlook 点击邮箱签名没有反应卡死
  13. 关于若依管理系统配置多数据源的原理分析
  14. python requests返回结果带\\u的解决方法
  15. 1字节是多少位,汉字utf-8又占多少。
  16. SPSS 顾客购买习惯调查问卷案例分析
  17. Jetson 学习笔记(五):pb转uff---pb转onnx转trt----pth转onnx转pb
  18. 隐患重重遭诟病 细数固态硬盘“七宗罪”
  19. 在APP盛行的移动时代,域名还有用吗?
  20. android openal播放器,Android OpenAL 录音参数不正确

热门文章

  1. mysql中sysdate函数转字符串_【转】MySQL:日期函数、时间函数总结(MySQL 5.X)
  2. mybatis generator 中文注释_Mybatis提供的逆向工程
  3. 2021-03-16 转自知乎专栏 https://zhuanlan.zhihu.com/p/24482664
  4. GDAL_GRID插值Y轴反向的问题
  5. 知道ip地址如何进入电脑_如何防止局域网电脑IP地址冲突
  6. Clion配置Ros环境
  7. java 接口嵌套接口_Java接口嵌套
  8. python 柱状图上显示字体_Python爬取百部电影数据,我发现了这个惊人真相!
  9. spark生态及各个功能
  10. vue实现input输入框控制最多输入一位小数