为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
设计模式

建造者模式

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


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消