3 创建型模式之 - 建造者模式
九路 666 12

建造者模式是一步一步创建一个比较复杂的对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的创建过程。该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。

本例以组装一台电脑为例,电脑有CPU,硬盘,内存,当然还有其它的,本例只用这三个属性表示来组装一台电脑

代码如下 :

/**
 * 组装一台电脑,需要安装硬盘,CPU,和内存条
 * 一台电脑
 */
public class Computer {
    protected String HDD;       //硬盘
    protected String CPU;       //CPU
    protected String MEM;       //内存条

    public Computer(String hdd,String cpu,String memory){
        this.HDD = hdd;
        this.CPU = cpu;
        this.MEM = memory;
    }


    @Override
    public String toString() {
        return "HDD="+HDD+" CPU="+CPU+" MEM="+MEM;
    }

    /*
        内部有一个静态的ComputerBuilder类
        ComputerBuilder内部的属性和Computer中是一样的
        或者和Computer的子类中的属性是一样的
    */
    public static class ComputerBuilder{
        protected String HDD;       //硬盘
        protected String CPU;       //CPU
        protected String MEM;       //内存条

        //设置HDD
        ComputerBuilder setHDD(String hdd){
            this.HDD = hdd;
            return this;
        }

        //设置CPU
        ComputerBuilder setCPU(String cpu){
            this.CPU = cpu;
            return this;
        }

        //设置MEM
        ComputerBuilder setMEM(String mem){
            this.MEM = mem;
            return this;
        }

        //创建一个Computer
        Computer build(){
            return new Computer(this.HDD,this.CPU,this.MEM);
        }
    }

}

使用

Computer computer = new ComputerBuilder().setCPU("core i7")

    .setHDD("西部数据500G硬盘")

    .setMEM("8G")

    .build();

computer.toString();

评论区