构造者模式

少于 1 分钟 阅读

将一个复杂对象的构建与它的表示分离,使的同样的构建过程可以创建不同的表示。

优点:使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所以如要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。

解决问题:主要用于创建一些复杂的对象,这些对象内部构建间的建造顺序通常是稳定的,但是对象内部的构建通常面临着复杂的变化。

示例

package desginMode;

/**
 * Created by Administrator on 2017-06-20.
 */
public class Car {
    private String name;
    private int age;
    private String describe;

    private Car() {
    }

    private Car(Car builderMode){
        this.name = builderMode.name;
        this.age = builderMode.age;
        this.describe = builderMode.describe;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    
    public String getDescribe() {
        return describe;
    }

    public void setDescribe(String describe) {
        this.describe = describe;
    }

    public static class Builder{
        private Car builder;
        public Builder(){
            builder = new Car();
        }

        public Builder name(String name){
            builder.setName(name);
            return this;
        }

        public Builder age(int age){
            builder.setAge(age);
            return this;
        }

        public Builder describe(String describe){
            builder.setDescribe(describe);
            return this;
        }

        public Car build(){
            return new Car(builder);
        }

    }
}

建造者模式是在当创建复杂对象时,该对象的算法应该独立于该对象的组成部分以及他们的装配方式。在这种情况下适用的模式。