定义:Builder模式是一步一步创建一个复杂的对象,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 是为了将构建复杂对象的过程和它的部件解耦.
通常为四个角色:
i) 抽象建造者(Builder)角色:给出一个抽象接口,以规范产品对象的各个组成成分的构造;
ii)具体建造者(ConcretBuilder)角色:它在应用程序的调用下创建产品的实例。完成任务为;
a) 实现抽象建造者Builder接口,给出一步步完成创建产品实例的操作;
b) 在创建完成后,提供产品的实例。
iii) 导演者(Director角色):调用具体建造者角色以创建产品对象;
iv)产品(Product)角色:建造中的复杂对象。一般情况下,一个系统不止一个产品类。
假如我们要组装一台电脑(Computer类),里面有三个配件(Keyboard类,MainFrameBox类,Monitor类)
/**
* Computer类 里面有com.jeedroid.part包里的三个属性
*/
package com.jeedroid.product;
import com.jeedroid.part.*;
public class Computer
{
private Keyboard keyboard;
private MainFrameBox mainFrameBox;
private Monitor monitor;
public Keyboard getKeyboard()
{
return keyboard;
}
public void setKeyboard(Keyboard keyboard)
{
this.keyboard = keyboard;
}
public MainFrameBox getMainFrameBox()
{
return mainFrameBox;
}
public void setMainFrameBox(MainFrameBox mainFrameBox)
{
this.mainFrameBox = mainFrameBox;
}
public Monitor getMonitor()
{
return monitor;
}
public void setMonitor(Monitor monitor)
{
this.monitor = monitor;
}
public Computer(Keyboard keyboard, MainFrameBox mainFrameBox, Monitor monitor)
{
super();
this.keyboard = keyboard;
this.mainFrameBox = mainFrameBox;
this.monitor = monitor;
}
}
/**
* 这个类调用CreatorComputer类来完成组装工作
*/
package com.jeedroid.designpattern;
import com.jeedroid.product.Computer;
public class Director
{
private Builder builder;
public Director(Builder builder)
{
this.builder=builder;
}
public void construct()
{
builder.buildKeyboard();
builder.buildMainFrameBox();
builder.buildMonitor();
}
}
/**
* 这个类负责具体的组装工作
*/
package com.jeedroid.designpattern;
import com.jeedroid.part.Keyboard;
import com.jeedroid.part.MainFrameBox;
import com.jeedroid.part.Monitor;
import com.jeedroid.product.Computer;
public class CreatorComputer implements Builder
{
private Keyboard keyboard;
private MainFrameBox mainFrameBox;
private Monitor monitor;
private Computer computer;
@Override
public Keyboard buildKeyboard()
{
keyboard=new Keyboard("keyboard");
return keyboard;
}
@Override
public MainFrameBox buildMainFrameBox()
{
mainFrameBox=new MainFrameBox("MainFrameBox");
return mainFrameBox;
}
@Override
public Monitor buildMonitor()
{
monitor=new Monitor("monitor");
return null;
}
@Override
public Computer getComputer()
{
computer=new Computer(keyboard,mainFrameBox,monitor);
return computer;
}
}
测试代码
分享到:
相关推荐
**建造者模式(Builder Pattern)**是软件设计模式中的一种,属于创建型模式。它将复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式通常用于那些需要大量构造参数的对象,通过...
在深入探讨C#设计模式中的建造者(Builder)模式之前,我们先来理解一下什么是设计模式。设计模式是在软件工程中解决常见问题的一种通用可重用解决方案,它们提供了一种标准化的方法来解决软件开发中遇到的挑战。...
Builder模式 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 统设计中,有时候面临着一个“复杂系统”的创建工作,该对象通常由各个部分的子对象用一定的算法构成,或者说按一定的...
Builder模式的核心包括四个角色:Product(产品类)、ConcreteBuilder(具体建造者)、Builder(抽象建造者)和Director(导演类)。以下是对这些角色的详细解释: 1. **Product(产品类)**:这是Builder模式所...
建造者模式(Builder)是设计模式中的一种结构型模式,它允许我们分步骤构建复杂的对象,而无需暴露构造过程。这种模式将构造过程与对象的表示分离,使得同样的构造过程可以创建不同的表示。在C++中,建造者模式通常...
### Builder模式:构建复杂对象的艺术 #### 概述 Builder模式是一种软件工程设计模式,它将复杂对象的构建过程与其表示分离,使同一构建过程能够创建出不同的表示。这一模式通常用于创建复合对象,通过子类继承和...
【标题】"Builder 设计模式详解" Builder设计模式是一种创建型设计模式,它提供了一种方法来分步骤构造复杂的对象,使得构建过程和表示分离,允许用户只关注对象的构建而无需关心具体实现细节。在Java或其他编程...
Builder模式通常包含四个主要角色:Product(产品),Builder(建造者),ConcreteBuilder(具体建造者)和Director(导演)。Product是被构建的对象,具有多种组成部件;Builder定义了构建产品的接口,而不涉及具体...
在Java中,Builder模式通常包含四个主要角色:Product(产品),Builder(建造者),ConcreteBuilder(具体建造者)和Director(导演)。Product是被构建的对象,Builder定义了产品的构造接口,ConcreteBuilder实现...
在Java或其他面向对象语言中,生成器模式通常包括四个主要角色:产品(Product)、建造者(Builder)、具体建造者(Concrete Builder)和导演(Director)。产品是最终要构建的对象,建造者定义了产品的部分或全部...
建造者模式(Builder Pattern)是设计模式中的一种创建型模式,它允许我们分步骤构建复杂的对象,而无需暴露其构造过程。这种模式的核心思想在于将对象的构建与表示分离,使得构建过程和不同表示可以独立变化,提高...
但同时,Builder模式也有一些缺点,如增加了系统的复杂性,如果产品结构过于复杂,建造者也可能会变得很庞大。 在"晨会分享-0802"的文件中,可能详细介绍了Builder模式的原理、应用场景、优缺点以及如何在实际编程...
建造者模式(Builder Pattern)是软件工程中一种用于创建对象的抽象工厂方法,它将复杂的构建过程分解为一系列步骤,使得构建过程可以独立于其表示进行。这种模式允许客户端使用相同的构建过程创建不同表现形式的...
建造模式是一种设计模式,它将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。在软件工程中,这种模式常用于当一个类的实例化过程过于复杂,或者需要通过不同的步骤来构建时。建造模式允许...
建造者模式是一种结构型设计模式,它允许我们分步骤创建复杂对象,而无需暴露构建过程的内部细节。这种模式在Java编程中非常常见,尤其是在处理需要多种构建方式或需要隔离对象构造过程的场景。 建造者模式的核心...
建造者模式是一种设计模式,它将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。在C++中实现建造者模式,我们可以遵循以下步骤: 首先,我们需要定义一个抽象建造者(Builder)类,它声明了一...
详解建造者(builder)模式的创建对象使用方式
建造者模式【Builder Pattern】是一种设计模式,它在软件工程中用于将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。这种模式在处理复杂对象的构造时特别有用,因为它允许我们通过分离构造...
Builder模式是一种创建型设计模式,它提供了一种创建对象的灵活方式,将对象的构建过程与表示分离。这种模式在复杂对象的构造过程中特别有用,因为它允许我们通过不同的步骤来构造对象,而不会让客户端代码受到这些...