`
dr.han
  • 浏览: 46301 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

三:builder模式

阅读更多
首先假设一个复杂对象是由多个部件组成的,Builder模式是把复杂对象的创建和部件的创建分别开来,分别用Builder类和Director类来表示.

首先,需要一个接口,它定义如何创建复杂对象的各个部件:

public interface Builder {

  //创建部件A  比如创建汽车车轮
  void buildPartA();
  //创建部件B 比如创建汽车方向盘
  void buildPartB();
  //创建部件C 比如创建汽车发动机
  void buildPartC();

  //返回最后组装成品结果 (返回最后装配好的汽车)
  //成品的组装过程不在这里进行,而是转移到下面的Director类中进行.
  //从而实现了解耦过程和部件
  Product getResult();

}


用Director构建最后的复杂对象,而在上面Builder接口中封装的是如何创建一个个部件(复杂对象是由这些部件组成的),也就是说Director的内容是如何将部件最后组装成成品:

public class Director {

  private Builder builder;

  public Director( Builder builder ) {
    this.builder = builder;
  }
  // 将部件partA partB partC最后组成复杂对象
  //这里是将车轮 方向盘和发动机组装成汽车的过程
  public void construct() {
    builder.buildPartA();
    builder.buildPartB();
    builder.buildPartC();

  }

}


Builder的具体实现ConcreteBuilder:
通过具体完成接口Builder来构建或装配产品的部件;
定义并明确它所要创建的是什么具体东西;
提供一个可以重新获取产品的接口:

public class ConcreteBuilder implements Builder {

  Part partA, partB, partC;
  public void buildPartA() {
    //这里是具体如何构建partA的代码

  };
  public void buildPartB() {
    //这里是具体如何构建partB的代码
  };
   public void buildPartC() {
    //这里是具体如何构建partB的代码
  };
   public Product getResult() {
    //返回最后组装成品结果
  };

}


复杂对象:产品Product:

public interface Product { }


复杂对象的部件:

public interface Part { }



我们看看如何调用Builder模式:
ConcreteBuilder builder = new ConcreteBuilder();
Director director = new Director( builder );

director.construct();
Product product = builder.getResult();

Builder模式的应用
在Java实际使用中,我们经常用到"池"(Pool)的概念,当资源提供者无法提供足够的资源,并且这些资源需要被很多用户反复共享时,就需要使用池.

"池"实际是一段内存,当池中有一些复杂的资源的"断肢"(比如数据库的连接池,也许有时一个连接会中断),如果循环再利用这些"断肢",将提高内存使用效率,提高池的性能.修改Builder模式中Director类使之能诊断"断肢"断在哪个部件上,再修复这个部件.
分享到:
评论

相关推荐

    Java设计模式:Builder模式应用案例[借鉴].pdf

    Builder模式是一种常用的软件设计模式,它允许我们分步骤构建复杂对象,使得创建过程更加清晰、易于理解,并且能够保持代码的整洁。在Java编程中,Builder模式尤其适用于那些具有大量可选参数的对象创建。 在提供的...

    Java设计模式:Builder模式应用案例[整理].pdf

    Builder模式是一种设计模式,主要用来解决复杂对象的构建问题,特别是在对象的构造过程中涉及大量的参数时。在Java编程中,Builder模式提供了一种更加灵活、结构化的创建对象的方式,避免了构造函数的过度膨胀和...

    C#面向对象设计模式纵横谈(4):Builder 生成器模式(创建型模式)

    Builder模式是一种创建型设计模式,它提供了一种创建对象的抽象接口,并允许使用不同的实现来控制对象的构造过程。在C#中,Builder模式经常被用于复杂对象的构建,特别是当构建过程需要多个步骤或者需要在不同环境中...

    (创建型模式)Builder模式

    Builder模式是一种创建型设计模式,它提供了一种方法来分步骤构建复杂的对象,使得构建过程和表示分离。这种模式在程序开发中常用于构造产品对象,尤其是当对象的构造过程较为复杂时,Builder模式能够帮助我们更好地...

    Java Builder模式构建MAP/LIST的实例讲解

    Builder 模式通常由三个部分组成:Builder 对象、Director 对象和 Product 对象。 知识点二:Java 中的 Builder 模式实现 在 Java 中,可以使用静态内部类来实现 Builder 模式。在上面的示例代码中,我们可以看到...

    C#视频-面向对象设计模式纵横谈(4):Builder 生成器模式(创建型模式)

    Builder模式是一种创建型设计模式,它提供了一种创建复杂对象的灵活方式,将对象的创建过程逐步分解,使得创建过程可以独立于使用过程。在C#编程中,Builder模式经常被用于构造对象,特别是当对象的构建过程复杂,...

    C#面向对象设计模式纵横谈(4):Builder 生成器模式(创建型模式) (Level 300)

    Builder模式是一种创建型设计模式,它提供了一种创建对象的抽象接口,并允许使用不同的实现来创建复杂的对象。在C#中,Builder模式可以帮助我们在不暴露复杂构造过程的情况下,创建具有多种构建步骤的对象。这种模式...

    Builder模式

    ### Builder模式:构建复杂对象的艺术 #### 概述 Builder模式是一种软件工程设计模式,它将复杂对象的构建过程与其表示分离,使同一构建过程能够创建出不同的表示。这一模式通常用于创建复合对象,通过子类继承和...

    builder设计模式源码

    在Java或者其他面向对象编程语言中,Builder模式经常被用来提高代码的可读性和可维护性。 Builder模式的核心包括四个角色:Product(产品类)、ConcreteBuilder(具体建造者)、Builder(抽象建造者)和Director...

    设计模式 创建型模式 Builder模式(建造者)

    Builder模式 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 统设计中,有时候面临着一个“复杂系统”的创建工作,该对象通常由各个部分的子对象用一定的算法构成,或者说按一定的...

    设计模式-Builder模式demo

    Builder模式是一种创建型设计模式,它提供了一种创建对象的抽象接口,并允许子类按照步骤构建复杂的对象。这种模式将对象的创建过程分离出来,使得同样的构造过程可以创建不同的表示,从而实现对象创建过程的解耦。 ...

    C#设计模式之Builder生成器模式解决带老婆配置电脑问题实例

    在软件开发中,Builder模式主要用于解决一些复杂对象的创建问题,通过一步步的方式来创建对象,避免了直接使用构造函数创建对象的局限性。 二、 Builder生成器模式优点 Builder生成器模式有以下几个优点: * 解...

    BUILDER模式 C++实现

    Builder模式是一种设计模式,它属于创建型模式,主要用于复杂对象的构建。在C++中,Builder模式可以帮助我们分步骤地创建一个复杂的对象,而无需关注这些步骤如何组合在一起。这样可以使得构造过程更加灵活,同时也...

    设计模式之建造者Builder模式

    在《设计模式:可复用面向对象软件的基础》一书中,建造者模式被定义为:“建造者模式允许用户使用相同的接口来构建不同的对象。它将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。” ##...

    Builder 模式

    Builder模式是一种设计模式,它属于创建型模式,主要用于构建复杂对象。这种模式允许我们通过分离对象的构造过程和表示来创建对象,使得构造过程可以更加灵活,并且能够避免在构造过程中对对象状态的直接修改。...

    创建型——Builder模式

    Builder模式是一种创建型设计模式,它提供了一种创建对象的灵活方式,将对象的构建过程与表示分离。这种模式在复杂对象的构造过程中特别有用,因为它允许我们通过不同的步骤来构造对象,而不会让客户端代码受到这些...

    Builder模式在Java中的应用

    在设计模式中对Builder模式的定义是用于构建复杂对象的一种模式,所构建的对象往往需要多步初始化或赋值才能完成。那么,在实际的开发过程中,我们哪些地方适合用到Builder模式呢?其中使用Builder模式来替代多参数...

    设计模式面面观(10):桥接模式(Bridge Pattern)-结构型模式

    创建型模式 (100%) 设计模式面面观(5):抽象工厂模式(AbstractFactory)-创建型模式 (100%) 设计模式面面观(6):生成器模式(Builder)-创建型模式 (100%) 设计模式面面观(7):原型模式(Prototype...

    【Java 设计模式-源码】Builder 模式:在 Java 中清晰构建自定义对象

    三、Builder 模式的详细解释及实际示例 实际示例: Java 的 Builder 模式在对象创建涉及众多参数的场景中特别有用。 想象一下,你在一家熟食店定制三明治。在这种情况下,Builder 设计模式将涉及一个 ...

    (设计模式)Builder

    在给定的博客链接中,可能详细讨论了如何在实际项目中应用Builder模式,例如在软件开发工具或框架中,通过Builder模式来构建数据结构或配置对象。Builder模式能够帮助开发者将对象的创建过程分解为一系列步骤,使得...

Global site tag (gtag.js) - Google Analytics