Java构建者模式

当我们要是使用一个复杂的对象(构造起来相当的麻烦)的时候,我们希望不要去关心这个对象是怎么被构建的,那么我们就要使用构建者模式,把使用和构建的工作分开。

角色分析:

1. 抽象的构建者

2. 被构建者

3. 具体的构建者

以构建一辆车为例:

首先我们需要定义规范,定义一样汽车如何构建:

public interface CarBuilder {

    void buildEngine();

    void buildWheel();

    void buildChassis();

    Car buildCar();
}

接下来我们需要被构建的对象:

public class Car {

    private String engine;

    private String chassis;

    private String wheel;

    public String getEngine() {
        return engine;
    }

    public void setEngine(String engine) {
        this.engine = engine;
    }

    public String getChassis() {
        return chassis;
    }

    public void setChassis(String chassis) {
        this.chassis = chassis;
    }

    public String getWheel() {
        return wheel;
    }

    public void setWheel(String wheel) {
        this.wheel = wheel;
    }
}

接下来就是具体的构建者了:

public class CarBuilderImpl  implements CarBuilder {

    private Car car;

    public void buildEngine() {
        this.car.setEngine("引擎");
        System.out.println("汽车引擎构建完毕");
    }

    public void buildWheel() {
        this.car.setChassis("底盘");
        System.out.println("汽车底盘构建完毕");
    }

    public void buildChassis() {
        this.car.setWheel("轮子");
        System.out.println("汽车轮子构建完毕");
    }

    public Car buildCar() {
        this.car =  new Car();
        this.buildChassis();
        this.buildEngine();
        this.buildWheel();
        System.out.println("汽车建造完毕");
        return this.car;
    }
}

测试一下:

public class BuilderTest {

    public static void main(String[] args) {
        CarBuilder carBuilder = new CarBuilderImpl();
        Car car = carBuilder.buildCar();
    }
}

这个模式很简单,笔者只分析一下使用场景,当我们需要构建很复杂的对象的时候,比如一个Config配置,那么我们就能使用建造者模式,这样可以把对象的构建和使用分离

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值