创建型设计模式:

抽象工厂(Abstract Factory):

  1. 用途:提供一个接口以创建一系列相关或相互依赖的对象,而无需指定具体的类。

  2. 场景:

    1. 一个系统要独立于它的产品的创建。
    2. 一个系统要由多个产品系列中的一个来配置。
    3. 强调一系列相关的产品对象的设计以便进行联合使用。
    4. 提供一个产品类库,但只对外提供它们的接口而不是实现
  3. 结构图: 创建一系列相关的对象

  4. 已知应用:JDK中的Collection,Map

  5. 工厂方法(Factory Method):

    1. 用途:定义一个用于创建对象的接口,让子类决定实例化哪一个类。

    2. 场景:

      1. 一个类不知道它所创建的对象的类。
      2. 一个类希望由它的子类来指定它所创建的对象。
      3. 多用于框架代码中,面向接口编程。
    3. 结构图:创建一个对象

    4. 已知应用:

      1. JDK中的ThreadPoolExecutor的阻塞队列
      2. AbstractExecutorService.submit方法,在ScheduledThreadPoolExecutor中返回不同的Future

建造者(Builder):

  1. 用途:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

  2. 场景:

    1. 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
    2. 当构造过程必须允许被构造的对象有不同的表示时。
  3. 结构图: 定义一系列的步骤去创建一类产品

  4. 已知应用

    1. JDK中的StringBuilder
    2. Spring中的BeanDefinitionBuilder

单例模式

  1. 用途:涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

  2. 场景:

    1. 要求生产唯一序列号。
    2. WEB 中的计数器,不用每次刷新都在数据库里加一次,用单例先缓存起来。
    3. 创建的一个对象需要消耗的资源过多,比如 I/O 与数据库的连接等。
  3. 结构图:

原型模式

  1. 用途:实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式

  2. 场景:

    1. 资源优化场景。
    2. 类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等。
    3. 性能和安全要求的场景。
    4. 通过 new 产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。
    5. 一个对象多个修改者的场景。
  3. 注意事项:与通过对一个类进行实例化来构造新对象不同的是,原型模式是通过拷贝一个现有对象生成新对象的。浅拷贝实现 Cloneable,重写,深拷贝是通过实现 Serializable 读取二进制流。

  4. 结构图:clone()方法

java设计模式之创建型设计模式相关推荐

  1. JavaScript设计模式之创建型设计模式

    此系列总结与<JavaScript设计模式>,总共分为创建型设计模式.结构型设计模式.行为型设计模式.技巧型设计模式和架构性设计模式五大类. github原文地址:YOU-SHOULD-K ...

  2. android 工厂模式创建,7、Android设计模式---(创建型设计模式)抽象工厂模式

    一.介绍,定义 抽象工厂模式也是创建型模式之一,抽象工厂模式起源于对不同操作系统的图形化解决方案,如不同操作系统的按钮和文本框控件及其实现. 为创建一组相关或者相互依赖的对象提供接口,而不需要具体指定 ...

  3. Java内功心法,创建型设计模式包括哪些

    1. 单例(Singleton) Intent 确保一个类只有一个实例,并提供该实例的全局访问点. Class Diagram 使用一个私有构造函数.一个私有静态变量以及一个公有静态函数来实现. 私有 ...

  4. 【设计模式】创建型设计模式

    文章目录 1. 基础 ①如何学习设计模式 ② 类模型 ③ 类关系 2. 设计原则 3. 模板方法 ① 定义 ②背景 ③ 要点 ④ 本质 ⑤ 结构图 ⑥ 样例代码 4. 观察者模式 ① 定义 ②背景 ③ ...

  5. 《Python编程实战:运用设计模式、并发和程序库创建高质量程序》—— 第1章 Python的创建型设计模式...

    本节书摘来自华章出版社<Python编程实战:运用设计模式.并发和程序库创建高质量程序>一 书中的第1章,第1.1节,作者:(美) Mark Summerfield,更多章节内容可以访问云 ...

  6. javaScript设计模式-创建型设计模式

    我们大家一听到设计模式就感觉设计模式是一个高端的东西,到底什么是设计模式呢?其实设计模式也就是我们的前辈在写代码的时候遇到的问题,提出的解决方案,为了方便人与人之间的交流,取了个名字,叫做设计模式. ...

  7. java设计模式中不属于创建型模式_23种设计模式第二篇:java工厂模式定义:工厂模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式...

    23种设计模式第二篇:java工厂模式 定义: 工厂模式是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 工厂模式主要是为创建对象提供过渡接口, ...

  8. java面向对象程序设计第三版_JAVA面向对象程序设计之创建型设计模式

    [本文详细介绍了JAVA面向对象程序设计中的创建型设计模式,欢迎读者朋友们阅读.转发和收藏!] 1 基本概念 1.1 什么是设计模式 设计模式( Design pattern )是一套被反复使用.多数 ...

  9. Java设计模式之创建型:原型模式

    一.什么是原型模式: 原型模式主要用于对象的创建,使用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象.UML类图如下: 原型模式的核心是就是原型类 Prototype,Prototype ...

最新文章

  1. db2删除大量数据_Python 连接数据库的多种方法
  2. .net core mvc部署到IIS导出Word 提示80070005拒绝访问
  3. Redis:哨兵模式(Sentinel)原理
  4. Win10下IIS配置图解、MVC项目发布图解、IIS添加网站图解
  5. 应用程序的日志通过rsyslog推送到syslog服务器
  6. CVPR2021 Oral《Seeing Out of the Box》北科大中山大学微软提出端到端视觉语言表征预训练方法...
  7. ubuntu 12.04 安装Docker 实战
  8. 知网查重报告html乱码,知网查重报告乱码如何解决?
  9. 阿里云服务器价格表:第7代云服务器ECS收费价格表
  10. hdu 5336 XYZ and Drops
  11. 互联网赚钱指南!我是如何零成本空手套白狼?
  12. 有效的数独 C++算法 leetcode36
  13. Python异常UnicodeEncodeError: 'gbk' codec can't encode character '\uXXX' in position
  14. YUI可真是个不错的东东
  15. 输入正整数n,输出n层数字金字塔。
  16. 什么样的导航源码适合seo做收录的
  17. 如何在贵金属白银现货走势分析中积累经验?
  18. mysql英文怎么发音_如何给孩子读英文书?
  19. .net core入门38:linux上安装.net 5.0
  20. 50条留言丨他们是这样看待边缘计算的

热门文章

  1. 为什么优秀和听话总是难两全?
  2. 面对安利,谁能笑到最后
  3. 徐起预热realme Q5系列:骁龙870+80W快充 新一代千元机皇
  4. 因策划进军餐饮等虚假营销 TikTok前营销主管被开除
  5. 只卖男人,年赚5.6亿!全网最火“爱情骗子”,被戳穿了
  6. 元宇宙会是一场噩梦吗?
  7. iPhone 13系列电池容量最高4350mAh 较iPhone 12提升近20%
  8. 微信公布6月朋友圈十大谣言 包括不打疫苗不让上飞机高铁等
  9. 工信部:2021年1-2月锂电池产量29.5亿只
  10. 不到6年“拼”活近8亿用户 拼多多还在狂奔