前言
在软件开发的世界里,设计模式如同一本精妙的编码诗集,已经成为一种标准的编程实践。在Java编程中,设计模式很重要。是软件开发中广泛应用的一种编程方法,它可以帮助开发人员更快地编写出高效、可靠和可维护的代码。 本人将制作一个关于Java设计模式的系列文章,总共23种设计模式将以一篇一篇文章讲解,代码笔记已开源:Gitee点击跳转。在上一篇《Java设计模式(2)工厂模式》文章中,我们介绍了工厂模式。本文是这个系列的第三篇章,我们将讲解一下建造者模式的实现方式、应用场景以及它的用途。
建造者模式
建造者模式是一种创建型设计模式,其主要目的是将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的对象
应用场景
- 当一个对象的构建过程较为复杂,包含多个组件或者步骤,而且需要根据不同的需求构建不同表示时
- 当需要创建一系列相似但具有不同配置的对象时
代码实现
创建建造者 Build 类,此类可构建电脑对象和猫对象
代码语言:javascript复制/**
* 建造者
* @author Jensen
* @date 2024-01-23
* */
public class Build {
public String cpu;
public String memory;
public String ssd;
public String hdd;
public String name;
public Integer age;
public String type;
public Build setCpu(String cpu) {
this.cpu = cpu;
return this;
}
public Build setMemory(String memory) {
this.memory = memory;
return this;
}
public Build setSsd(String ssd) {
this.ssd = ssd;
return this;
}
public Build setHdd(String hdd) {
this.hdd = hdd;
return this;
}
public Build setName(String name) {
this.name = name;
return this;
}
public Build setAge(Integer age) {
this.age = age;
return this;
}
public Build setType(String type) {
this.type = type;
return this;
}
public Computer buildComputer(){
return new Computer(this);
}
public Cat buildCat(){
return new Cat(this);
}
}
再创建相应的 Computer 类和 Cat 类
代码语言:javascript复制/**
* 电脑实体
* @author Jensen
* @date 2024-01-23
* */
public class Computer {
private String cpu;
private String memory;
private String ssd;
private String hdd;
public Computer(Build build) {
this.cpu = build.cpu;
this.memory = build.memory;
this.ssd = build.ssd;
this.hdd = build.hdd;
}
@Override
public String toString() {
return "cpu='" cpu '''
", memory='" memory '''
", ssd='" ssd '''
", hdd='" hdd ''';
}
}
代码语言:javascript复制/**
* 猫实体
* @author Jensen
* @date 2024-01-23
* */
public class Cat {
private String name;
private Integer age;
private String type;
public Cat(Build build){
this.name = build.name;
this.age = build.age;
this.type = build.type;
}
@Override
public String toString() {
return "name='" name '''
", age=" age
", type='" type ''';
}
}
使用示例
代码语言:javascript复制System.out.println("------------------------------建造者模式-----------------------------");
Computer computer = new Build()
.setCpu("AMD Ryzen 77800 X3D")
.setMemory("雷克沙战神之刃 16G")
.setHdd("雷克沙-战神NM7902TB PCIE4.0")
.setSsd("KIOXIA 256GB")
.buildComputer();
System.out.println("创建电脑对象:" computer);
Cat cat = new Build()
.setName("牛牛")
.setAge(1)
.setType("英短")
.buildCat();
System.out.println("创建猫对象:" cat);
输出:
结尾
我们经常用的 StringBuilder 类就是一个建造者模式的典型应用。它允许使用者逐步构建一个字符串,并最终返回构建好的字符串。在生产环境中,建造者模式的应用非常广泛,它具有灵活性、可扩展和可维护性,特别是在构建复杂的对象时。