`

设计模式(7)- 生成器模式

阅读更多

生成器模式

1.定义

       将复杂对象的构件和它的表示分离,使得同样的构建过程可以创建不同的表示。

2.示例代码

       要实现同样的构建过程可以创建不同的表现,那么一个自然的思路就是先把构建过程独立出来,在生成器模式中把它称为指导者,由它来指导装配过程,但是不负责每步具体实现,具体实现每步的对象,在生成器模式中称为生成器。

   

/*被构件的产品对象接口*/
public interface Product{
    //产品对象的一些操作
    public String getProductName();
}

/*产品对象鞋子*/
public class Shoes implements Product{
    //产品对象的一些操作
    public String getProductName(){
       System.out.println("产品:" + "Shoes");
    }
}
/*产品对象衣服*/
public class Clothes implements Product{
    //产品对象的一些操作
    public String getProductName(){
       System.out.println("产品:" + "Clothes");
    }
}

 

   

/*生成器接口,定义创建Product对象所需的各个部件的操作方法*/
public interface Bulider{
   //示意方法,构件某个部件
   public void buildPart();
}

/*鞋子具体生成器实现对象*/
public class ShoesBuilder implements Bulider{
    //生成器最终构建的产品对象
    private Product resultProduct;
    //获取生成器最终构建的产品对象
    public Product getResult(){
        return resultProduct;
    }
    //构建具体产品的详细步骤
    public void buildPart(){
        //构建某个部件的功能处理
        resultProduct = new Shoes();
    }
}

/*衣服具体生成器实现对象*/
public class ChothesBuilder implements Bulider{
    //生成器最终构建的产品对象
    private Product resultProduct;
    //获取生成器最终构建的产品对象
    public Product getResult(){
        return resultProduct;
    }
    //构建具体产品的详细步骤
    public void buildPart(){
        //构建某个部件的功能处理
        resultProduct = new Chothes();
    }
}

   

/*指导者使用生成器接口来构建产品对象*/
public class Director{
   //持有当前生成器对象
   private Builder builder;
   //构造方法传入生成器对象
   public Director(Builder builder){
       this.builder = builder;
   }
   //指导生成器构建最终的产品对象
   public void construct(){
       builder.buildPart();
   }
}

   

/*客户调用生成器生成不同的产品*/
public class Client{
    public static void main(String args[]){
        //创建要生产的产品生成器
        Builder builder = new ShoesBuilder();
        //创建指导对象
        Director director = new Director(builder);
        //生产产品
        director.construct();
        builder.getResult().getProductName();
    }
}

 

    3.实际应用

       生成器模式主要功能是构建复杂产品,而且是细化的,分步骤的构建产品,更为重要的是,这个构建的过程是统一的,固定不变的,变化的部分放到生成器里边,只需要配置不同的生成器,那么同样的构建过程就能构建出不同的产品。

 

生成器模式的本质:分离整体构建算法和部件构造
分享到:
评论

相关推荐

    iOS设计模式-生成器

    通过这种方式,生成器模式允许我们分离产品的构造和表示,提供了更灵活的构造过程。 首先,让我们深入理解生成器模式的核心概念。生成器模式通常由四个组件构成:Director(导演)、ConcreteBuilder(具体生成器)...

    【设计模式】- 生成器模式(Builder)(csdn)————程序.pdf

    生成器模式,也称为建造者模式,是一种设计模式,用于创建复杂对象,它允许你按照一系列步骤来构造对象,而这些步骤可以通过不同的实现来产生不同形式的对象。生成器模式的核心在于分离了对象的构造过程和表示细节,...

    java设计模式-生成器模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段...

    设计模式精解-GoF 23种设计模式解析附C++.pdf

    ### 设计模式精解——GoF 23种设计模式解析及C++实现 #### 0. 引言 设计模式作为面向对象编程的核心组成部分,是软件开发者在长期实践中总结出来的最佳实践。通过深入理解这些设计模式,我们可以更好地进行面向...

    设计模式精解-GoF 23种设计模式解析附C++实现源码.pdf

    ### 设计模式精解——GoF 23种设计模式解析及C++实现源码 #### 0. 引言 设计模式是软件工程领域的一个重要概念,它提供了一种解决常见问题的方法论。GoF(Gang of Four)所提出的23种设计模式被视为面向对象设计的...

    设计模式精解-GoF 23种设计模式

    GoF(Gang of Four)23种设计模式是业界广泛认可的经典设计模式集合,由《设计模式:可复用面向对象软件的基础》一书中的四位作者提出。这些模式分为创建型、结构型和行为型三大类,涵盖了多种软件设计原则和技巧,...

    设计模式精解-GoF 23 种设计模式解析附 C++实现源码

    ### 设计模式精解—GoF 23种设计模式解析及C++实现源码 #### 0. 引言 设计模式作为一种重要的面向对象设计工具,在软件开发中扮演着至关重要的角色。本文旨在深入解析GoF(Gang of Four,四人组)提出的23种设计...

    23钟设计模式之生成器模式

    生成器模式(Builder Pattern)是一种创造型设计模式,它将一个复杂对象的构建与它的表示分离,使得同样的构建可以创建不同的表示。这种模式可以在以下情况下使用: 1. 当创建复杂对象的算法应该独立于该对象的组成...

    JAVA设计模式--程序设计--反射--注解--泛型

    设计模式包括创建型模式(如单例、工厂方法、抽象工厂等)、结构型模式(如适配器、装饰器、代理等)和行为型模式(如策略、观察者、职责链等)。这些模式提供了良好的可复用性和可扩展性,帮助开发者遵循“开闭原则...

    动软代码生成器,自动生成设计模式代码

    通过动软代码生成器,开发者可以选择并应用各种设计模式,如工厂模式、单例模式、观察者模式、装饰器模式、策略模式等,这些模式可以有效地提高代码的可读性、可维护性和可扩展性。 代码生成器的核心功能包括: 1....

    设计模式--可复用面向对象软件的基础

    - **第三章 创建型模式**:包括抽象工厂、生成器、工厂方法、原型以及单例等模式,这些模式主要用于解决对象创建的问题。 - **第四章 结构型模式**:包括适配器、桥接、组合、装饰、外观、享元以及代理等模式,这些...

    生成器模式代码示例

    生成器模式是一种设计模式,属于创建型模式,它允许我们分步骤构建复杂对象,而无需提前知道整个对象的完整结构。这种模式的核心在于延迟初始化,它使得我们可以根据需要逐步构建对象,而不是一次性创建所有部分。在...

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

    本文主要介绍了C#设计模式之Builder生成器模式解决带老婆配置电脑问题,简单介绍了生成器模式的概念、功能并结合具体实例形式分析了C#生成器模式解决配电脑问题的步骤与相关操作技巧。 一、 Builder生成器模式定义 ...

    设计模式精解-GoF23种设计模式解析附C实现源码.pdf

    ### 设计模式精解——GoF23种设计模式解析及C实现 #### 一、引言 在软件工程领域,设计模式被视为一种重要的实践工具和技术。它可以帮助开发者解决常见的设计问题,并提供了一系列已被验证的有效解决方案。《设计...

    设计模式综合项目实战X-Gen生成器 PPT

    设计模式综合项目实战X-Gen生成器 PPT

    设计模式习题答案-抽象工厂、生成器.ppt

    设计模式习题答案-抽象工厂、生成器.ppt

    C#面向对象设计模式4:生成器(Builder)

    生成器模式是一种创建型设计模式,它允许我们分步骤构建复杂对象,同时隐藏了对象组装的细节。这种模式的核心思想是将产品的构造过程与产品本身分离,使构造过程可以有不同的表示方式。生成器模式通常由四个主要角色...

    设计模式--Java语言版本

    6. **装饰器模式**:动态地给对象添加一些额外的职责,比生成子类更灵活。Java的InputStream和OutputStream家族类就是装饰器模式的典型应用。 7. **适配器模式**:将一个类的接口转换成客户希望的另一个接口,使...

Global site tag (gtag.js) - Google Analytics