`

设计模式之Builder模式

阅读更多

Builder模式也属于一种创建模式,它主要用来产生比较复杂的对象。假如我们现在有

一个很复杂的对象,它有好多部件组成,如果我们用new在构造器中构建的话,这样

代码的耦合度很高,不能实现解耦的目的。这就要求我们将各个部件的生产和各个部

件的组装分开来做。就好比生产一台电脑,一些部门专门负责生产各种的部件(CPU,

显示卡,声卡,硬盘,显示器等),另外一些部门负责组装这些部件。就好比买个组

装电脑。要实现Builder模式,我们需要借助几个类来实现:

public abstract class Builder{

        public abstract  void  builderA();

        public abstract  void   buliderB();

        public abstract   void   buliderC();

        ...........................

        public Product  getProcuct()

              //空实现留给Director来重载

         }

}

public class  concreteBulider extends Builder {

        ClassA aA;

         ClassB  bB;

         ClassC  cC;

         public void buliderA(){

               //具体来构造部件A

         }

          public void buliderB(){ }

                //具体来构造部件B

         }

          public void buliderC(){

               //具体来构造部件C

         }

         .................................

 

public class Director {

         public  void constructor( Bulider bulider ){

                    bulider.builderA();

                    builder.builderB();

                    builder.builderC();

          }

          public Product  gerProduct(){

                   //把 aA,bB,cC组装为最终产品

                    return  "产品";

           }

}

public class Client {

      public static void main(String[ ]  args){

             Builder  builder = new ConcreterBuilder(); 

             builder.contructor(builder);

             builder.getProduct();

      }

 

}

这样各个部件的生产让concreteBuilder来完成,具体的组装又Director来完成,这样代码的

耦合性就减少了。

分享到:
评论
1 楼 狂放不羁 2007-08-17  
偶是模式新手,理解有误的地方请各位指点。

相关推荐

    Android设计模式之Builder模式详解

    Android 设计模式之 Builder 模式是一种常用的设计模式,旨在解决复杂对象的创建问题。该模式的主要思想是将对象的创建过程与其表示分离,使得创建过程更加灵活和可扩展。 在 Builder 模式中,系统会提供一个 ...

    设计模式之建造者Builder模式

    **建造者模式(Builder Pattern)**是软件设计模式中的一种,属于创建型模式。它将复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式通常用于那些需要大量构造参数的对象,通过...

    设计模式之Builder

    设计模式是软件工程中的一种最佳实践,用于解决在开发过程中经常遇到的问题,提供了一种标准的解决方案。"Builder"模式是其中的一种行为设计模式,它主要用于构造复杂对象的创建过程,将对象的创建步骤分离,使得...

    (设计模式)Builder

    【标题】"Builder 设计模式详解" Builder设计模式是一种创建型设计模式,它提供了一种方法来分步骤构造复杂的对象,使得构建过程和表示分离,允许用户只关注对象的构建而无需关心具体实现细节。在Java或其他编程...

    Android编程设计模式之Builder模式实例详解

    本文实例讲述了Android编程设计模式之Builder模式。分享给大家供大家参考,具体如下: 一、介绍 Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细的控制...

    设计模式-Builder模式demo

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

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

    C#设计模式之Builder生成器模式解决带老婆配置电脑问题实例 本文主要介绍了C#设计模式之Builder生成器模式解决带老婆配置电脑问题,简单介绍了生成器模式的概念、功能并结合具体实例形式分析了C#生成器模式解决配...

    设计模式之创建模式Builder

    建造者模式(Builder Pattern)是设计模式中的一种创建型模式,它允许我们分步骤构建复杂的对象,而无需暴露其构造过程。这种模式的核心思想在于将对象的构建与表示分离,使得构建过程和不同表示可以独立变化,提高...

    java设计模式之Builder&Decorator

    Java设计模式中的Builder模式和Decorator模式是两种重要的设计模式,它们在软件开发中起到优化代码结构、提高代码复用性和灵活性的作用。 1. 建造者模式(Builder) 建造者模式是一种创建型设计模式,它的主要目的...

    JAVA设计模式chm文档

    设计模式之Builder 设计模式之Singleton(单态) 结构模式: 设计模式之Facade(外观) 设计模式之Proxy(代理) 设计模式之Adapter(适配器) 设计模式之Composite(组合) 设计模式之Decorator(油漆工) 设计模式之Bridge 设计...

    builder设计模式源码

    Builder设计模式是一种软件设计模式,它允许我们分步骤构建复杂对象,通过将构造过程与对象的表示分离,使得相同的构造过程可以创建不同的表示。在Java或者其他面向对象编程语言中,Builder模式经常被用来提高代码的...

    Android设计模式之Builder模式解析

    今天我们要讲的是Builder模式(建造者模式) 定义 将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示 使用场景 当初始化一个对象特别复杂时,如参数多,且很多参数都具有默认值时 相同的...

    builder设计模式

    Builder设计模式是一种结构型设计模式,它主要用于将复杂对象的构造过程与其表示分离,使得同样的构造过程可以创建不同的表示。这种模式通常在我们希望逐步构建一个对象,且构造过程复杂时使用,允许我们以一种独立...

    23种设计模式的java实现-Builder

    Builder设计模式是创建型模式之一,主要解决复杂对象的构建问题,使得构建过程与表示分离。 Builder模式的核心思想是将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。这种模式通常应用于...

    设计模式文档 chm

    设计模式之Builder 设计模式之Singleton(单态) 结构模式: 设计模式之Facade(外观) 设计模式之Proxy(代理) 设计模式之Adapter(适配器) 设计模式之Composite(组合) 设计模式之Decorator(油漆工) 设计模式之Bridge 设计...

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

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

    Java设计模式之禅

    《Java设计模式之禅》是一本深入浅出讲解设计模式的书籍,书中不仅包含23种经典设计模式的案例,还详细介绍了设计模式背后的思想和原则,适合初学者以及对设计模式有一定了解的程序员阅读。本书旨在帮助读者理解如何...

Global site tag (gtag.js) - Google Analytics