设计模式-Builder模式

2018-03-26  本文已影响0人  ZjyMac

一,java中的 Builder模式

public class Product  {
    private String partA;
    private String partB;
    private String partC;

    public String getPartA() {
        return partA;
    }

    public void setPartA(String partA) {
        this.partA = partA;
    }

    public String getPartB() {
        return partB;
    }

    public void setPartB(String partB) {
        this.partB = partB;
    }

    public String getPartC() {
        return partC;
    }

    public void setPartC(String partC) {
        this.partC = partC;
    }
}

public abstract class Builder {
    protected Product product = new Product();

    public abstract void buildPartA();

    public abstract void buildPartB();

    public abstract void buildPartC();

    public Product getResult() {
        return product;
    }
}
public class ConcreateBuilder extends Builder{


    @Override
    public void buildPartA() {

    }

    @Override
    public void buildPartB() {

    }

    @Override
    public void buildPartC() {

    }
}

public class Director {
    private Builder builder;

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

    public void setBuilder(Builder builder) {
        this.builder = builder;
    }

    public Product construct() {
        builder.buildPartA();
        builder.buildPartB();
        builder.buildPartC();
        return builder.getResult();
    }
}
 Builder builder = new ConcreateBuilder();
        Director director = new Director(builder);
        Product product = director.construct();

二,Builder模式在android中的应用

android中的简单实现

public class AndroidProduct {
    private String partA;
    private String partB;
    private String partC;

    private AndroidProduct(String partA, String partB, String partC) {
        this.partA = partA;
        this.partB = partB;
        this.partC = partC;
    }

    public  static class Builder {
        private String partA;
        private String partB;
        private String partC;

        public Builder setPartA(String partA) {
            this.partA = partA;
            return this;
        }

        public Builder setPartB(String partB) {
            this.partB = partB;
            return this;
        }

        public Builder setPartC(String partC) {
            this.partC = partC;
            return this;
        }

        public AndroidProduct build() {
            return new AndroidProduct(partA, partB, partC);
        }
    }
}
 AndroidProduct androidProduct = new AndroidProduct.Builder()
.setPartA("a")
.setPartB("b")
.setPartC("c").build();
   

Android中的实际应用:
1.AlertDialog
2.Gilde/okhttp

上一篇 下一篇

猜你喜欢

热点阅读