建造者模式

作者: 程序员丶星霖 | 来源:发表于2017-04-19 19:21 被阅读39次

建造者模式

定义

又称生成器模式,是一种对象创建型模式,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象。
英文定义:Separate the construction of a complex object from its representation so that the same construction process can create different representations .

建造者模式的UML类图如下所示:

建造者模式.jpg

上图中所涉及到的角色及职责:

  • 抽象建造者(Builder):给出一个抽象接口,以规范产品对象的各个组成成分的建造。
  • 具体建造者(ConcreteBuilder):与应用程序紧密相关的一些类,它们在应用程序的调用下创建产品的实例。
  • 导演者(Director):指挥使用哪个具体创造者来完成产品的创建,是创建工作的调用者。
  • 产品(Product):建造中的复杂对象。

示例代码如下所示:

//产品类
public class Product{
    public void doSomething(){
        //独立业务处理
    }
}
//抽象建造者
public abstract class Builder{
    //设置产品的不同部分,以获得不同的产品
    public abstract void setPart();
    //建造产品
    public abstract Product buildProduct();
}
//具体建造者
public class ConcreteProduct extends Builder{
    private Product product = new Product();
    //设置产品零件
    public void setPart(){
        //产品类内的逻辑处理
    }
    //组件一个产品
    public Product buildProduct(){
        return product;
    }
}
//导演类
public class Director{
    private Builder builder = new ConcreteProduct();
    //构建不同的产品
    public Product getAProduct(){
        builder.setPart();
        //设置不同的零件,产生不同的产品
        return builder.buildProduct();
    }
}

优缺点

优点:

  • 封装性:使用建造者模式可以是客户端不必知道产品内部组成的细节。
  • 建造者独立,容易扩展
  • 便于控制细节风险

缺点:

  • 建造者模式比较符合产品差别不大的对象的创建,如果差别很大,就会导致非常多的具体的创建者,这时最好结合工厂方法模式。

使用场景:

  • 相同的方法,不同的执行顺序,产生不同的事件结果时,可以采用建造者模式。
  • 多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时,则可使用该模式。
  • 产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效能,用该模式非常合适。
  • 在对象创建过程中会使用到系统中的一些其他对象,这些对象在产品对象的创建过程中不易得到时,可以采用建造者模式封装该对象的创建过程。

注意事项:

  • 建造者模式是为了解决复合对象的创建而产生的,建造者模式将复杂对象的构建与对象的表现分离开来,这样使得同样的构建过程可以创建出不同的表现。有利于明确各部分的职责目标,有利于软件结构的优化。
  • 建造者模式最主要的额功能时基本方法的调用顺序安排,顺序不同产生的对象也不同;而工厂方法则重点是创建,创建零件是它的主要职责组装顺序则不是它关心的。

欢迎大家关注我的微信公众号

我的微信公众号.jpg

相关文章

  • Builder Pattern in Java

    建造者模式:建造者模式定义建造者模式应用场景实现案例Jdk中的建造者模式建造者模式的优点建造者模式的缺点 建造者模...

  • 设计模式(4) 建造者模式

    什么是建造者模式 经典建造者模式的优缺点 对建造者模式的扩展 什么是建造者模式 建造者模式将一个复杂的对象的构建与...

  • 建造者模式(部件构造)

    目录 建造者模式的理念 从 POJO 到建造者模式的思考 怎么来实现建造者模式 建造者模式在Android源码中的...

  • 【设计模式】之建造者Builder模式

    建造者模式 什么是建造者模式? 建造者模式属于创建型模式的一员,可以控制对象的实例化过程。建造者模式简化了复杂对象...

  • 建造者模式

    一、建造者模式介绍 二、建造者模式代码实例

  • 建造者模式

    建造者模式 首先,建造者模式的封装性很好。使用建造者模式可以有效的封装变化,在使用建造者模式的场景中,一般产品类和...

  • 建造者模式:深入理解建造者模式 ——组装复杂的实例

    目录: 一 建造者模式介绍 1.1 定义 1.2 为什么要用建造者模式(优点)? 1.3 哪些情况不要用建造者模式...

  • 设计模式之建造者模式

    设计模式之建造者模式 Intro 简介 建造者模式: 建造者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加...

  • 一、设计模式(构建模式)——03建造模式与原型模式

    建造者模式 建造型模式用于创建过程稳定,但配置多变的对象。 建造模式的实现要点: 在建造者模式中,指挥者是直接与客...

  • 创建型模式:建造者模式

    个人公众号原文:创建型模式:建造者模式 五大创建型模式之四:建造者模式。 简介 姓名 :建造者模式 英文名 :Bu...

网友评论

    本文标题:建造者模式

    本文链接:https://www.haomeiwen.com/subject/prthzttx.html