建造者模式

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

 

 示图代码如下:

public abstract class Builder {
    public abstract void buildPartA();
    public abstract void buildPartB();
    public abstract Product getResult();
}
Builder
public class ConcreteBuilder extends Builder {
    private Product product = new Product();

    @Override
    public void buildPartA() {
        product.add("部件A");
        
    }

    @Override
    public void buildPartB() {
        product.add("部件B");
        
    }

    @Override
    public Product getResult() {
        return product;
    }
    
    
}
ConcreteBuilder
import java.util.ArrayList;
import java.util.List;

public class Product {
    List<String> parts = new ArrayList<String>();
    
    public void add(String part){
        parts.add(part);
    }
    
    public void show(){
        System.out.println("组成部件:\t");
        for (String str : parts) {
            System.out.print(str+"\t");
        }
    }
}
Product
public class Director {
    public void construct(Builder builder){
        builder.buildPartA();
        builder.buildPartB();
    }
}
Director
public class TestBuilder {
    public static void main(String[] args) {
        Director di = new Director();
        Builder builder = new ConcreteBuilder();
        di.construct(builder);
        Product pr = builder.getResult();
        pr.show();
    }
}

结果:
组成部件:    
部件A    部件B    
test

使用场景:

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

使用好处:

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

 

posted @ 2020-08-12 15:27  就是你baby  阅读(107)  评论(0编辑  收藏  举报