iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java创建型模式之建造者模式怎么实现
  • 190
分享到

Java创建型模式之建造者模式怎么实现

2023-07-05 03:07:42 190人浏览 泡泡鱼
摘要

这篇文章主要介绍了Java创建型模式之建造者模式怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java创建型模式之建造者模式怎么实现文章都会有所收获,下面我们一起来看看吧。一.介绍建造者模式(Build

这篇文章主要介绍了Java创建型模式之建造者模式怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java创建型模式之建造者模式怎么实现文章都会有所收获,下面我们一起来看看吧。

一.介绍

建造者模式(Builder Pattern)属于创建型模式。如果一个对象具有复杂的内部结构或者内部属性本身相互依赖(有顺序要求),甚至对象中的某些属性的创建也有一个很复杂的过程,就可以使用建造者模式

二.UML类图

Java创建型模式之建造者模式怎么实现

三.具体代码

业务代码

public class Product {    private String part1;    private String part2;    public Product(String part1, String part2) {        this.part1 = part1;        this.part2 = part2;    }    @Override    public String toString() {        return "Product{" +                "part1='" + part1 + '\'' +                ", part2='" + part2 + '\'' +                '}';    }}//控制每个部件的具体创建interface Builder {    void buildPart1(String part1);    void buildPart2(String part2);    Product build();}class ChinaBuilder implements Builder{    private String part1;    private String part2;    @Override    public void buildPart1(String part1) {        this.part1 = "国产" + part1;    }    @Override    public void buildPart2(String part2) {         this.part2 = "国产" + part2;    }    @Override    public Product build() {        return new Product(part1, part2);    }}//控制组装部件的顺序class Director{    private Builder builder;    public Director(Builder builder) {        this.builder = builder;    }    public Product construct(String part1, String part2){        builder.buildPart1(part1);        builder.buildPart2(part2);        return builder.build();    }}

测试代码

public class BuilderTest {    public static void main(String[] args) {        Director director = new Director(new ChinaBuilder());        Product product = director.construct("传感器", "芯片");        System.out.println(product); //Product{part1='国产传感器', part2='国产芯片'}    }}

四.lombok的@Builder注解(拓展)

我们先以静态内部类的方式实现简单场景下的建造者模式(以优雅的链式调用代替set)

业务代码

public class Product {    private String part1;    private String part2;    public Product(String part1, String part2) {        this.part1 = part1;        this.part2 = part2;    }    @Override    public String toString() {        return "Product{" +                "part1='" + part1 + '\'' +                ", part2='" + part2 + '\'' +                '}';    }    static class Builder {        private String part1;        private String part2;        public Builder part1(String part1) {            this.part1 = part1;            return this;        }        public Builder part2(String part2) {            this.part2 = part2;            return this;        }        public Product build(){            return new Product(part1, part2);        }    }}

测试类

public class ProductTest {    public static void main(String[] args) {        Product product = new Product.Builder().part1("传感器").part2("芯片").build();        System.out.println(product); //Product{part1='传感器', part2='芯片'}    }}

下面看看lombok的@Builder注解的实现

业务代码

@Builderpublic class Product {    private String part1;    private String part2;}

idea中打开Product.class文件,可以看出实际就是使用的简单场景的建造者模式

//// Source code recreated from a .class file by IntelliJ IDEA// (powered by FernFlower decompiler)//package com.designpattern.create.builder.lombok;public class Product {    private String part1;    private String part2;    Product(String part1, String part2) {        this.part1 = part1;        this.part2 = part2;    }    public static Product.ProductBuilder builder() {        return new Product.ProductBuilder();    }    public static class ProductBuilder {        private String part1;        private String part2;        ProductBuilder() {        }        public Product.ProductBuilder part1(String part1) {            this.part1 = part1;            return this;        }        public Product.ProductBuilder part2(String part2) {            this.part2 = part2;            return this;        }        public Product build() {            return new Product(this.part1, this.part2);        }        public String toString() {            return "Product.ProductBuilder(part1=" + this.part1 + ", part2=" + this.part2 + ")";        }    }}

五.在spring中的应用

org.springframework.WEB.servlet.mvc.method.RequestMappingInfo.DefaultBuilder

关于“Java创建型模式之建造者模式怎么实现”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Java创建型模式之建造者模式怎么实现”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Java创建型模式之建造者模式怎么实现

本文链接: https://www.lsjlt.com/news/349304.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java创建型模式之建造者模式怎么实现
    这篇文章主要介绍了Java创建型模式之建造者模式怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java创建型模式之建造者模式怎么实现文章都会有所收获,下面我们一起来看看吧。一.介绍建造者模式(Build...
    99+
    2023-07-05
  • Java创建型设计模式之建造者模式详解
    目录前言定义结构实现方法应用场景总结建造者模式是Java中一种创建型设计模式,它的主要目的是将一个复杂对象的构建过程分解为多个简单对象的构建过程,并且使这些构建过程按照一定的顺序进行...
    99+
    2023-05-19
    Java建造者模式 Java建造者模式实践 Java创建型设计模式
  • Java 深入理解创建型设计模式之建造者模式
    1.提出问题 假如说,我们需要建房子:这一过程为打桩、砌墙、封顶。房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的.3)请编写程序,完成需求。 传...
    99+
    2022-11-13
  • Java设计模式之建造者模式
    本文由老王家组装电脑引出——建造者设计模式,详细介绍建造者模式的基本概念和实现代码,为了便于理解建造者模式,我们会对实际应用中的典型案例进行介绍。最后对比工厂...
    99+
    2022-11-13
  • java建造者模式怎么实现
    在Java中,可以通过以下步骤来实现建造者模式:1. 首先,创建一个需要构建的复杂对象的类,该类包含多个属性。这个类通常被称为“产品...
    99+
    2023-08-18
    java
  • .Net创建型设计模式之建造者、生成器模式(Builder)
    目录一、动机(Motivation)二、意图(Intent)三、结构(Structure)四、模式的组成五、建筑者模式的具体实现六、建造者模式的实现要点1、建造者模式的优点:2、建造...
    99+
    2022-11-13
  • Python 设计模式中的创建型建造者模式
    目录一、建造者模式二、代码示例一、建造者模式 建造者模式,顾名思义类似于建筑工人,他们按照有条理的施工顺序(e.g. 打桩 => 浇筑框架 => 砌墙 => 装修)...
    99+
    2022-11-13
  • 设计模式之建造者模式
    文章目录 盖房项目需求传统方式解决盖房需求传统方式的问题分析建造者模式概述是建造者模式的四个角色建造者模式原理类图建造者模式的注意事项和细节 盖房项目需求 需要建房子:这一过程为打桩、砌墙、封顶房子有各种各样的,比如普通房,高楼...
    99+
    2023-08-30
    设计模式
  • 详解Java实践之建造者模式
    目录一、前言二、开发环境三、建造者模式介绍四、案例场景模拟4.1、场景模拟工程4.2、场景简述4.2.1、物料接口4.2.2、吊顶(ceiling)4.2.3、涂料(coat)4.2...
    99+
    2022-11-12
  • Java设计模式之建造者模式实例详解
    本文实例讲述了Java设计模式之建造者模式。分享给大家供大家参考,具体如下:建造者模式(builder)可以将部件和其组装过程分开.一步一步创建一个复杂的对象。用户只需要指定复杂对象的类型就可以得到该对象,而无须知道其内部的具体构造细节.什...
    99+
    2023-05-31
    java 设计模式 建造者模式
  • C#设计模式之建造者模式
    场景:我们的冒险家,现在需要去武器商店买一把兵器,有刀和剑两种武器,冒险者可以告诉武器商人需要哪一种武器,然后武器商人进行锻造,最后把产品给冒险者,用建造者模式如何实现? 1.什么是...
    99+
    2022-11-13
  • C#怎么实现建造者模式
    这篇文章主要介绍“C#怎么实现建造者模式”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#怎么实现建造者模式”文章能帮助大家解决问题。场景:我们的冒险家,现在需要去武器商店买一把兵器,有刀和剑两种武...
    99+
    2023-07-02
  • java设计模式:建造者模式之生产线
    目录什么是建造者模式建造者模式中的角色产品角色(Product)抽象建造者(Builder)具体建造者角色(ConcreteBuilder)导演者角色(Director)最终测试总结...
    99+
    2022-11-12
  • Java中怎么实现创建者模式
    这篇文章给大家介绍Java中怎么实现创建者模式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。创建者模式和工厂模式有点类似,不过关注点不同。工厂模式往往只关心你要的是什么,二不关心这个东西的具体细节是什么。而创建模式则关...
    99+
    2023-06-17
  • .Net设计模式之建造者、生成器模式怎么实现
    这篇文章主要讲解了“.Net设计模式之建造者、生成器模式怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“.Net设计模式之建造者、生成器模式怎么实现”吧!一、动机(Motivation...
    99+
    2023-06-30
  • java建造者模式怎么应用
    Java的建造者模式可以应用于以下情况:1. 当一个类的构造函数参数很多,且参数之间存在依赖关系时,可以使用建造者模式来简化构造函数...
    99+
    2023-08-31
    java
  • 深入理解Java设计模式之建造者模式
    目录一、什么是建造者模式二、建造者模式的应用场景三、建造者模式的优缺点四、工厂模式和建造者模式的对比五、建造者模式的实现六、总结一、什么是建造者模式 建造者模式也称生成器模式 定义:...
    99+
    2022-11-12
  • Java建造者模式是什么
    这篇文章给大家分享的是有关Java建造者模式是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.提出问题假如说,我们需要建房子:这一过程为打桩、砌墙、封顶。房子有各种各样的,比如普通房,高楼,别墅,各种房子的...
    99+
    2023-06-29
  • java设计模式--建造者模式详解
    目录引例一般解法代码:AbstractHouse(房子)Bungalow(平房)Villa (别墅)客户端调用建造者模式建造者模式解法代码:House类(Product产品)Hous...
    99+
    2022-11-12
  • JAVA设计模式----建造者模式详解
    目录介绍角色代码演示通过反射创建建造者对象优点缺点适用场景总结介绍 建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作