`

Builder(建造模式)

阅读更多
定义: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;
	}

}

测试代码
0
2
分享到:
评论

相关推荐

    设计模式之建造者Builder模式

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

    C#设计模式之建造者(Builder)模式示例源代码

    在深入探讨C#设计模式中的建造者(Builder)模式之前,我们先来理解一下什么是设计模式。设计模式是在软件工程中解决常见问题的一种通用可重用解决方案,它们提供了一种标准化的方法来解决软件开发中遇到的挑战。...

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

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

    builder设计模式源码

    Builder模式的核心包括四个角色:Product(产品类)、ConcreteBuilder(具体建造者)、Builder(抽象建造者)和Director(导演类)。以下是对这些角色的详细解释: 1. **Product(产品类)**:这是Builder模式所...

    设计模式C++学习之建造者模式(Builder)

    建造者模式(Builder)是设计模式中的一种结构型模式,它允许我们分步骤构建复杂的对象,而无需暴露构造过程。这种模式将构造过程与对象的表示分离,使得同样的构造过程可以创建不同的表示。在C++中,建造者模式通常...

    Builder模式

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

    (设计模式)Builder

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

    (创建型模式)Builder模式

    Builder模式通常包含四个主要角色:Product(产品),Builder(建造者),ConcreteBuilder(具体建造者)和Director(导演)。Product是被构建的对象,具有多种组成部件;Builder定义了构建产品的接口,而不涉及具体...

    设计模式-Builder模式demo

    在Java中,Builder模式通常包含四个主要角色:Product(产品),Builder(建造者),ConcreteBuilder(具体建造者)和Director(导演)。Product是被构建的对象,Builder定义了产品的构造接口,ConcreteBuilder实现...

    生成器模式builder

    在Java或其他面向对象语言中,生成器模式通常包括四个主要角色:产品(Product)、建造者(Builder)、具体建造者(Concrete Builder)和导演(Director)。产品是最终要构建的对象,建造者定义了产品的部分或全部...

    设计模式之创建模式Builder

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

    晨会分享Builder设计模式

    但同时,Builder模式也有一些缺点,如增加了系统的复杂性,如果产品结构过于复杂,建造者也可能会变得很庞大。 在"晨会分享-0802"的文件中,可能详细介绍了Builder模式的原理、应用场景、优缺点以及如何在实际编程...

    设计模式之建造者模式代码示例

    建造者模式(Builder Pattern)是软件工程中一种用于创建对象的抽象工厂方法,它将复杂的构建过程分解为一系列步骤,使得构建过程可以独立于其表示进行。这种模式允许客户端使用相同的构建过程创建不同表现形式的...

    建造模式(代码)

    建造模式是一种设计模式,它将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。在软件工程中,这种模式常用于当一个类的实例化过程过于复杂,或者需要通过不同的步骤来构建时。建造模式允许...

    设计模式——建造者模式

    建造者模式是一种结构型设计模式,它允许我们分步骤创建复杂对象,而无需暴露构建过程的内部细节。这种模式在Java编程中非常常见,尤其是在处理需要多种构建方式或需要隔离对象构造过程的场景。 建造者模式的核心...

    建造者模式c++实现

    建造者模式是一种设计模式,它将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。在C++中实现建造者模式,我们可以遵循以下步骤: 首先,我们需要定义一个抽象建造者(Builder)类,它声明了一...

    详解建造者(builder)模式的创建对象使用方式

    详解建造者(builder)模式的创建对象使用方式

    建造者模式【Builder Pattern】(一)问题提出

    建造者模式【Builder Pattern】是一种设计模式,它在软件工程中用于将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。这种模式在处理复杂对象的构造时特别有用,因为它允许我们通过分离构造...

    创建型——Builder模式

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

Global site tag (gtag.js) - Google Analytics