首页 > 其他 > 详细

建造者模式

时间:2020-08-12 16:19:37      阅读:54      评论:0      收藏:0      [点我收藏+]

建造者模式(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

使用场景:

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

使用好处:

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

 

建造者模式

原文:https://www.cnblogs.com/cai170221/p/13490819.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!