java设计模式之创建型设计模式

简介: java设计模式之创建型设计模式

创建型设计模式:



抽象工厂(Abstract Factory):


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


2.场景:


    1. 一个系统要独立于它的产品的创建。


    2. 一个系统要由多个产品系列中的一个来配置。


    3.强调一系列相关的产品对象的设计以便进行联合使用。


    4.提供一个产品类库,但只对外提供它们的接口而不是实现


3.结构图: 创建一系列相关的对象


image.png


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


5.工厂方法(Factory Method):


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


   2.场景:


      1. 一个类不知道它所创建的对象的类。


      2. 一个类希望由它的子类来指定它所创建的对象。


      3.多用于框架代码中,面向接口编程。


   3.结构图:创建一个对象


image.png


   4.已知应用:


       1. JDK中的ThreadPoolExecutor的阻塞队列


        2.AbstractExecutorService.submit方法,在ScheduledThreadPoolExecutor中返回不同的Future


建造者(Builder):


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


  1. 场景:


       1.当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。


       2.当构造过程必须允许被构造的对象有不同的表示时。


  1. 结构图: 定义一系列的步骤去创建一类产品


image.png


4.已知应用


     1.JDK中的StringBuilder


     2.Spring中的BeanDefinitionBuilder


单例模式


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


2.场景:


     1.要求生产唯一序列号。


     2.WEB 中的计数器,不用每次刷新都在数据库里加一次,用单例先缓存起来。


    3. 创建的一个对象需要消耗的资源过多,比如 I/O 与数据库的连接等。


3.结构图:


image.png


原型模式


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


2.场景:


     1.资源优化场景。


     2.类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等。


     3.性能和安全要求的场景。


     4.通过 new 产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。


     5.一个对象多个修改者的场景。


3.注意事项:与通过对一个类进行实例化来构造新对象不同的是,原型模式是通过拷贝一个现有对象生成新对象的。浅拷贝实现 Cloneable,重写,深拷贝是通过实现 Serializable 读取二进制流。


4.结构图:clone()方法


image.png


目录
相关文章
|
1月前
|
设计模式 Java
Java中的设计模式及其应用场景解析
Java中的设计模式及其应用场景解析
|
3天前
|
设计模式 算法 Java
Java编程中的设计模式:简化复杂性的艺术
在Java的世界中,设计模式如同一位智慧的导师,指引着开发者们在复杂的编码迷宫中找到出口。本文将深入浅出地探讨几种常见的设计模式,通过实例演示如何在Java项目实践中运用这些模式,从而提升代码的可维护性和扩展性。无论你是新手还是资深开发者,这篇文章都将为你打开一扇通往高效编码的大门。
12 1
|
6天前
|
设计模式 安全 Java
|
9天前
|
设计模式 算法 Java
Java中的设计模式:探索与实践
【8月更文挑战第10天】在Java开发中,设计模式是提升代码可读性、可维护性和扩展性的关键所在。本文将深入探讨几种常见的设计模式及其在实际项目中的应用,帮助开发者更好地理解和运用这些模式,以编写出更高质量的代码。
25 2
|
3天前
|
设计模式 存储 Java
掌握Java设计模式的23种武器(全):深入解析与实战示例
掌握Java设计模式的23种武器(全):深入解析与实战示例
|
5天前
|
设计模式 安全 Java
怎样才能学好 Java 设计模式?
本文探讨了在软件开发中对设计模式的常见误解。许多人认为设计模式过于抽象难以学习,或是应用场景有限难以在复杂的业务环境中应用,甚至有人误以为所有问题都能通过设计模式解决。实际上,设计模式旨在解决特定范围内的面向对象设计问题,如提高代码的可复用性。为了正确理解和应用设计模式,需要摆正心态、深入了解其背景知识、培养独立思考的习惯,并坚持不懈地学习和实践。通过这些方法,开发者可以更好地掌握设计模式,从而在实际项目中做出更加合理的设计决策。
|
5天前
|
设计模式 Java
【Java】单例设计模式
【Java】单例设计模式
|
11天前
|
设计模式 存储 安全
18 Java反射reflect(类加载+获取类对象+通用操作+设计模式+枚举+注解)
18 Java反射reflect(类加载+获取类对象+通用操作+设计模式+枚举+注解)
39 0
|
1月前
|
设计模式 测试技术 Python
《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
【7月更文挑战第10天】Page Object Model (POM)是Selenium自动化测试中的设计模式,用于提高代码的可读性和维护性。POM将每个页面表示为一个类,封装元素定位和交互操作,使得测试脚本与页面元素分离。当页面元素改变时,只需更新对应页面类,减少了脚本的重复工作和维护复杂度,有利于团队协作。POM通过创建页面对象,管理页面元素集合,将业务逻辑与元素定位解耦合,增强了代码的复用性。示例展示了不使用POM时,脚本直接混杂了元素定位和业务逻辑,而POM则能解决这一问题。
43 6
|
1月前
|
设计模式 Java 测试技术
《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)
【7月更文挑战第12天】在本文中,作者宏哥介绍了如何在不使用PageFactory的情况下,用Java和Selenium实现Page Object Model (POM)。文章通过一个百度首页登录的实战例子来说明。首先,创建了一个名为`BaiduHomePage1`的页面对象类,其中包含了页面元素的定位和相关操作方法。接着,创建了测试类`TestWithPOM1`,在测试类中初始化WebDriver,设置驱动路径,最大化窗口,并调用页面对象类的方法进行登录操作。这样,测试脚本保持简洁,遵循了POM模式的高可读性和可维护性原则。
27 2