《Head First 设计模式》读书笔记五--建造者模式

建造者模式

简要

通过建造者模式可以简化复杂对象的创建,可以通过工厂模式来创建小的对象;然后装饰者来组装。
工厂模式和建造者模式的区别在于:工厂给出了一个响应的产品,而建造者是蓝图,可以通过不同的例子建造出不同的产品。

工厂创造出东西,建造者模式去选择使用东西来做出蓝图;后续使用

简要的例子

可以学习StringBuilder,append的方法就是一个例子。
它是通过一个char的数组来一直往里面增加东西,返回的是StringBuilder的对象。

简单实用可以使用lombok:@Builder的注解,这样可以创建一个简单的静态内部创建者模式的代码

代码示例

产品蓝图:

//汽车蓝图
@Data
public class Car {
    public Engine engine;
    public Seat seat;

}

建造者:

@Data
public class CarBuilder implements Builder {
    public Car car=new Car();

    public void buildSeat() {
        car.setSeat(new BenzSeat());
    }

    public void buildEngine() {
        car.setEngine(new BenzEngine());
    }

}

修饰器:

@Data
public class CarDirector {
    Builder builder;

    public CarDirector(Builder builder) {
        this.builder = builder;
    }

    public Car build(){
        builder.buildEngine();
        builder.buildSeat();
        return builder.getCar();
    }
}

你可能感兴趣的:(设计模式,技术博客,java学习)