继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

设计模式笔记(4)--建造者模式

慕标5832272
关注TA
已关注
手记 1263
粉丝 233
获赞 1008

建造者模式

GOF对建造者模式的定义是:“将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.”

public abstract class Builder {    public abstract void BuildPartA();    public abstract void BuildPartB();    public abstract Product GetResult();
}public class Product{
    ArrayList<String> parts = new ArrayList<String>();    public void Add(String part)
    {
        parts.add(part);
    }    public void Show()
    {
        System.out.println("create product");        for(int i = 0;i<parts.size();i++) {
            String part = parts.get(i);
            System.out.println(part);
        }
    }
}//具体的建造者类public class ConcreteBuilderA extends Builder{    private Product product = new Product();    @override
    public void BuildPartA()
    {
        product.Add("part A");
    }    @override
    public void BuildPartB()
    { 
        product.Add("part B");
    }    @override
    public Product GetResult()
    { 
        return product;
    }
}public class ConcreteBuilderB extends Builder{    private Product product = new Product();    @override
    public void BuildPartA()
    {
        product.Add("part W");
    }    @override
    public void BuildPartB()
    { 
        product.Add("part Z");
    }    @override
    public Product GetResult()
    { 
        return product;
    }
}//指挥者类public class Director {    public void Construct(Builder builder)
    {
        builder.BuildPartA();
        builder.BuildPartB();  
    }
}

建造者的作用是隐藏产品的组装过程,如果需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以达到目的。
建造者模式是面向对象中“多态”的一个好应用。
工厂模式侧重点在于将对象的实例化延迟到子类中,创建者的侧重点则是保持一个对象创建过程的稳定性。
工厂模式专注于创造相同表象的对象,当需要得到具有多种表象的实例时,建造者模式才是好选择、



作者:球球球球笨
链接:https://www.jianshu.com/p/95dae91beb33


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP