设计模式:建造者模式

来源:互联网 发布:安徽建筑大学网络教育 编辑:程序博客网 时间:2024/06/05 05:42

定义

建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

类图

建造者模式
建造者模式包含如下角色:

  • Builder:抽象建造者
  • ConcreteBuilder:具体建造者
  • Director:指挥者
  • Product:产品角色

扩展

建造者模式的简化:

  • 省略抽象建造者角色:如果系统中只需要一个具体建造者的话,可以省略掉抽象建造者。
  • 省略指挥者角色:在具体建造者只有一个的情况下,如果抽象建造者角色已经被省略掉,那么还可以省略指挥者角色,让Builder角色扮演指挥者与建造者双重角色。

代码

简化模式:

public class Room {    private String window;    private String floor;    private Room() {    }    public String getWindow() {        return window;    }    public String getFloor() {        return floor;    }    @Override    public String toString() {        return "---->floor  " + floor + "   window   " + window;    }    public static class Builder {        private final RoomParams params;        public Builder() {            params = new RoomParams();        }        public Builder makeWindow(String window) {            params.window = window;            return this;        }        public Builder makeFloor(String floor) {            params.floor = floor;            return this;        }        /**         * 构建         */        public Room builder() {            Room room = new Room();            params.apply(room);            return room;        }        private class RoomParams {            private String window;            private String floor;            /**             * 按特定顺序组装             */            private void apply(Room room) {                room.window = window;                room.floor = floor;            }        }    }}

调用过程:

Room room = new Room.Builder()        .makeWindow("蓝色玻璃")        .makeFloor("白色地板")        .builder();
0 0
原创粉丝点击