首页 > 其他分享 >设计模式-建造者模式(Builder)

设计模式-建造者模式(Builder)

时间:2024-07-24 13:50:47浏览次数:11  
标签:Product 对象 Builder 建造 模式 构建 设计模式

设计模式-建造者模式(Builder)

   概要

   记忆关键词:类和构造分离

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

   分析:原型模式就是从一个样板对象中复制出一个内部属性一致的对象。它是在内存中拷贝二进制流,比new一个对象的性能好很多。

   建造者模式结构图如下:

    

   一、能解决什么问题?

   二、涉及的角色

   1. Product(目标类)
   最终要生成的对象

   2. Builder(建造者的抽象基类)
承载了复杂对象的构建过程

   3. ConcreteBuilder(具体的建造者)
依赖Product类,ConcreteBuilder跟Product属于组合关系,ConcreteBuilder属于整体类,Product属于部分类

   4. Director

   决定如何构建最终产品的算法
控制Builder的生产过程,Director跟Builder属于组合关系,Director属于整体类,Builder属于部分类
决定如何构建最终产品的算法. 其会包含一个负责组装的方法void Construct(Builder builder), 在这个方法中通过调用builder的方法,
就可以设置builder,等设置完成后,就可以通过builder的 getProduct() 方法获得最终的产品

## 2. 分析

1)当一个类的构造函数参数个数超过4个,而且这些参数有些是可选的参数,考虑使用构造者模式。

2)构建者模式的精髓是将复杂对象的构建过程封装到构建者里,使用构建者再去创建对象,即先有构建者后有产品,产品由构建者创建

总体来说,建造者模式适用于需要创建具有复杂结构或多个配置选项的对象,而且希望将构建过程与表示分离的情况。

## 3. 使用场景

在Java源码里,建造者模式最典型的体现就是StringBuilder

说明:StringBuilder是Java中的一个用于构建字符串的类,它允许在不创建新的对象的情况下,对字符串进行可变操作

注意:lombok中的@Builder 注解通过注入一个静态内部类作为建造者,简化了建造者模式的使用,减少了样板代码。这种方式在代码中使用起来更加简洁,并且提高了可读性。

## 4. 建造者模式与简单工厂模式的区别

区别在于建造者模式多出一个Builder类,使得创建对象的灵活性大大增加,适用于如下场景:

- 创建一个对象,多个同样的方法的调用顺序不同,产生的结果不同

- 创建一个对象,特别复杂,参数多,而且很多参数都有默认值

标签:Product,对象,Builder,建造,模式,构建,设计模式
From: https://www.cnblogs.com/hld123/p/18320754

相关文章

  • 设计模式-原型模式(Prototype)
    设计模式-原型模式(Prototype)  概要   记忆关键词:原型实例、拷贝  定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。    分析:原型模式就是从一个样板对象中复制出一个内部属性一致的对象。它是在内存中拷贝二进制流,比new一个对象的性能好很......
  • Java设计模式-单例模式
    Java常用设计模式-单例模式JavaDesignPatterns:创建型模式:工厂方法、抽象方法、建造者、原型、单例结构型模式有:适配器、桥接、组合、装饰器、外观、享元、代理行为型模式有:责任链、命令、解释器、迭代器、中介、备忘录、观察者、状态、策略、模板方法、访问者常用设计模式:......
  • 跟着ChatGPT学习设计模式 - 工厂模式
    1.前言在工作过程中,越发觉得设计模式的重要性。经常会有人说工作5年的人,大学生随便培训1-2月也能做同样的工作,没错,大学生的确可以做。但其写的代码,可维护性、可扩展性、添加新功能时方便还是简单。甚至是软实力的表现,如何沟通、如何推进项目进展、如何做项目排期,其实都是应届生......
  • 设计模式-职责链模式(Chain of Responsibility)
    设计模式-策略模式(ChainofResponsibility)  概要   记忆关键词:传递请求,职责链接  定义:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链发送请求,直到有一个对象处理它为止。  分析:当客户提交一个请求,请......
  • Java常用设计模式-单例模式
    Java常用设计模式-单例模式JavaDesignPatterns:创建型模式:工厂方法、抽象方法、建造者、原型、单例结构型模式有:适配器、桥接、组合、装饰器、外观、享元、代理行为型模式有:责任链、命令、解释器、迭代器、中介、备忘录、观察者、状态、策略、模板方法、访问者常用设计模式:......
  • 创建型模式-单例设计模式
    一、单例设计模式单例模式(SingletonPattern)是Java中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可......
  • 【设计模式】建造者模式
    设计模式的分类:        创建型模式:这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用new运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。        工厂模式、抽象工厂模式、单例模式、建造者模式......
  • 设计模式-状态模式(State pat)
    设计模式-策略模式(StatePattern)  概要   记忆关键词:状态变成类  定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。  状态模式结构图如下:    一、能解决什么问题?  它主要用来解决对象在多种状态转换时,需要对外输出不同......
  • 【Java常用设计模式】通俗易懂的玩转单例、建造者、工厂、策略模式(保姆篇)
    文章目录单例模式建造者模式工厂模式策略模式本篇小结更多相关内容可查看在一个狂风骤雨的下午,有人突然问了我一句,单例模式是什么,我愣了,相信看完这篇就不会愣了,本文以通俗易懂的方式写的,可能有不严谨的地方......
  • 生产者消费者设计模式
    生产者消费者设计模式学习一、什么是生产者消费者设计模式Java中的生产者-消费者设计模式是一种用于多线程编程的经典设计模式,它用于解决多个线程之间共享资源时的同步和通信问题。这个模式主要用在有数据生产者(Producer)和数据消费者(Consumer)的场景中,生产者负责产生数据,而消费者......