java 设计模式 建造者模式

建造者模式

什么是建造者模式

建造者模式(Builder Pattern)是一种设计模式,属于创建型模式之一。它的主要目的是通过一步步构建一个复杂对象的方式,避免了构造过程中的混乱和复杂性。这个模式通常用于构建一个具有多个属性复杂结构的对象,可以通过分步设置属性构建对象,而不需要构造函数中传递大量的参数。

在建造者模式中,通常会有:

Product(产品):最终被构建的复杂对象。
Builder(建造者):定义了构建产品的步骤,并提供设置各个属性的方法。
Director(导演者):负责指挥如何构建产品,但不涉及具体构建的细节。
ConcreteBuilder(具体建造者):实现了Builder接口,提供具体的构建过程。

没有特别复杂的场景Director和ConcreteBuilder可以省略

建造者模式的作用:

分离构建和表示:将复杂对象的构建过程和表示分离。使用建造者模式可以让客户端关注如何构建对象,而不需要了解对象的构建细节。
提高代码可读性和可维护性:在构造一个对象时,如果需要设置多个参数,建造者模式可以通过方法链或分步设置来简化代码。
构建具有复杂结构的对象:如果对象的构建过程复杂,具有多个可选的参数或多个步骤,建造者模式非常适用。
灵活性:可以通过不同的建造者来创建不同表示的对象,从而提高灵活性。

示例

手动实现建造者模式

这里假设Person是个复杂的对象,我们给他属性赋值的时候,以前会Person person=new Person(); 然后person.setName()赋值,然后又person.setAge()赋值,这样非常麻烦,这时候就可以使用建造者模式,创建一个建造者, new Person.PersonBuilder() .setName(“John”).setAge(30).setAddress(“123 Main St”).build();方式创建对象

// 复杂的对象:Person类
public class Person {
   
    private String name;
    private int age;
    private String address;

    // 私有构造函数,防止直接实例化
    private Person(PersonBuilder builder) {
   
        this.name = builder.name;
        this.age = builder.age;
        this.address = builder.address;
    }

    public String getName() {
   
        return name;
    }

    public int getAge() {
   
        return age;
    }

    public String getAddress() {
   
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值