重学设计模式之建造者(Builder)模式

380 阅读1分钟

目录

  • 介绍
  • 使用场景
  • 实现

介绍

  1. 建造者模式是一个创建型模式,它允许用户在不知道内部构造的情况下,一步步精细控制对象的构造流程来创造出一个复杂对象。
  2. 建造者模式实现了复杂对象构建和表示的分离,同样的构建过程可以创建不同的表示。

使用场景

建造者模式用于构建复杂对象,它锁构建的对象一般有以下特征

  1. 相同方法,不同的执行顺序,产生不同的事件结果。
  2. 多个部件或零件,都可以装配到一个对象中,但是产生的运行结果却并不相同。
  3. 当对象初始化特别复杂,如参数多,或者参数有默认值。

实现

public class Computer {
    protected String mBoard;
    protected String mDisplay;
    protected String mCpu;
    protected String mGpu;
    protected String mOs;

    public void setBoard(String board) {
        mBoard = board;
    }

    public void setDisplay(String display) {
        mDisplay = display;
    }

    public void setCpu(String cpu) {
        mCpu = cpu;
    }

    public void setGpu(String gpu) {
        mGpu = gpu;
    }

    public void setOs(String os) {
        mOs = os;
    }

    public static class Builder {
        Computer computer;

        public Builder() {
            computer = new Computer();
        }

        public Builder board(String board) {
            computer.setBoard(board);
            return this;
        }

        public Builder display(String display) {
            computer.setDisplay(display);
            return this;
        }

        public Builder cpu(String cpu) {
            computer.setCpu(cpu);
            return this;
        }

        public Builder gpu(String gpu) {
            computer.setGpu(gpu);
            return this;
        }

        public Builder os(String os) {
            computer.setOs(os);
            return this;
        }

        public Computer build() {
            return computer;
        }
    }
}