http://my.oschina.net/jixin/blog/413277
什么是Builder模式: 如果按照网上的定义,理解起来相对不是简单易懂,我们可以打个比方,当需要构建一个复杂的对象时,比如说要生成一辆汽车,那么我们就需要先生成出构成这辆汽车的各个部件如车轮,发动机,方向盘,后视镜等,然后再将这些部件组装起来,最终组装成一辆完整的车。Builder模式的精髓就是将部件的生产和最终的组装分离出来。这样代码的模块化更强,更易于维护。
Builder模式举例:
1 定义一个Builder(建造)接口,声明“生产各个部件的方法以及组装各个部件的方法”;
public interface Builder
{
public void builderPartA(){}//生产a部件
public void builderPartB(){}//生产b部件
public void builderPartC(){}//生产c部件
public Product getResult(){}//组装各个部件
}
2定义一个类,实现该接口,添加具体的生产各个部件的方法及组装各个部件的方法
public class CreateBuilder implements Builder
{
public void builderPartA(){.....................}//生产a部件
public void builderPartB(){......................}//生产b部件
public void builderPartC(){.......................}//生产c部件
public Product getResult(){...................}//组装各个部件
}
3定义一个类Derictor:专门供用户发送生产组件命令和获取最终组装的产品
//在这个类中要使用CreateBuilder 方法,需要在Derictor中声明CreateBuilder 对象
public class Derictor
{
private CreateBuilder builder;
public Derictor( CreateBuilder builder)
{
this.builder=builder;
}
//生产各个部件
public void constructParts()
{
builder.builderPartA();
builder.builderPartB();
builder.builderPartC();
}
//组装最终产品
public Product constructResult()
{
builder. getResult();
}
}
4调用:
CreateBuilder mBuilder=new CreateBuilder();
Derictor mDerictor=new Derictor(mBuilder);
mDerictor.constructParts();
Product mProduct=mDerictor.constructResult();
//最终构建复杂对象mProduct
如果我们构建的对象较为复杂,那么我们就考虑使用Builder模式,将部件的生产和组装分离出来,给用户只提供生产部件和组装部件的方法,具体的如何生产,如何组装那就的事情了。
分享到:
相关推荐
Builder模式是一种创建型设计模式,它提供了一种创建对象的灵活方式,将对象的构建过程与表示分离。这种模式在复杂对象的构造过程中特别有用,因为它允许我们通过不同的步骤来构造对象,而不会让客户端代码受到这些...
建造者模式是一种结构型设计模式,它允许我们分步骤创建复杂对象,而无需暴露构建过程的内部细节。这种模式在Java编程中非常常见,尤其是在处理需要多种构建方式或需要隔离对象构造过程的场景。 建造者模式的核心...
在《设计模式——可复用面向对象软件的基础》这本书中,作者Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides(合称GoF)首次提出了23种面向对象设计模式。这些模式涵盖了不同设计场景,如创建型模式、...
接下来,我们将进一步探索另一种创建型设计模式——Builder模式。 ### Builder模式简介 Builder模式是一种软件设计模式,它允许将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。这种...
《设计模式——可复用面向对象软件的基础》是IT领域中的经典著作,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位大师合著,他们因此被誉为GoF(Gang of Four)。这本书提出了面向对象设计的23种...
书名: 设计模式可复用面向对象软件的基础 英文原书名: Design Patterns:Elements of Reusable Object-Oriented software 作者: Erich Gamma 等 译者: 李英军 马晓星 蔡敏 刘建中 书号: 7-111-07575-7 页码: 254 定价...
《设计模式--基于C#的工程化实现及扩展》是一本深入探讨软件设计模式的书籍,作者王翔通过C#语言来阐述各种设计模式的工程化应用和拓展。设计模式是软件开发中的一种最佳实践,它总结了在特定场景下解决常见问题的...
设计模式是软件工程中的一种最佳实践,它们是解决常见编程问题的经验总结,为软件开发提供了可复用的解决方案。在面向对象编程中,设计模式基于一些基本原则,这些原则构成了良好设计的基础。本篇将深入探讨23种设计...
本资料“《java设计模式》课后习题模拟试题解答——刘伟.zip”主要涵盖了Java设计模式的学习与应用,特别是针对刘伟教授的相关课程的课后习题及模拟试题的解答。 设计模式分为三大类:创建型、结构型和行为型模式。...
C#设计模式(23种设计模式) 1. 单件模式(Singleton Pattern) 2. 抽象工厂(Abstract Factory) 3. 建造者模式(Builder) 4. 工厂方法模式(Factory Method) 5. 原型模式(Prototype) 结构型: 6. 适配器...
### 设计模式与泡MM——设计模式入门教程 #### 一、创建型模式 ##### 1、FACTORY(工厂模式) 工厂模式的核心在于定义了一个创建对象的接口,但允许子类决定实例化哪一个类。工厂模式让类的实例化延迟到子类中...
### 设计模式精解——GoF23中设计模式解析 #### 重要性与起源 设计模式是软件工程领域的一项重要研究,它提供了一系列解决常见软件设计问题的模板。GoF23指的是由Erich Gamma、Richard Helm、Ralph Johnson和John ...
5. **客户端代码**:演示如何在客户端代码中使用Builder模式,通过调用Builder接口的方法,逐步构建复杂对象,然后通过Concrete Builder的build()方法获取最终产品。 此外,文章可能还会讨论创建者模式与其他设计...
生成器模式,也称为建造者模式,是一种设计模式,用于创建复杂对象,它允许你按照一系列步骤来构造对象,而这些步骤可以通过不同的实现来产生不同形式的对象。生成器模式的核心在于分离了对象的构造过程和表示细节,...
总结来说,Java的设计模式——建造者模式在Android开发中扮演着重要角色,它帮助我们构造复杂对象,提供了一种模块化、易扩展的代码结构,提高了代码的可读性和可维护性。通过理解并熟练运用建造者模式,开发者可以...
最后,"设计模式——基于C#的工程化实现及扩展_示例说明.txt"文件提供了对源码的解释和应用场景的描述,这对于初学者来说是极其宝贵的资源。它可以帮助你理解每个模式的意图、适用场景以及如何在C#代码中正确地引入...
"设计模式C#实例——大洋系统"这个主题涵盖了五个经典的设计模式:抽象工厂(Abstract Factory)、适配器(Adapter)、桥接(Bridge)、建造者(Builder)以及责任链(Chain of Responsibility)。接下来,我们将...
### 设计模式精解——GoF 23种设计模式解析及C++实现 #### 0. 引言 设计模式作为面向对象编程的核心组成部分,是软件开发者在长期实践中总结出来的最佳实践。通过深入理解这些设计模式,我们可以更好地进行面向...
这份名为“设计模式PPT——25种设计模式详解”的资料,显然是一个深入探讨设计模式的教程,它通过PDF格式对25种主要的设计模式进行了详尽的阐述。 首先,我们要理解设计模式的基本概念。设计模式不是代码,而是一种...