`
awfrun
  • 浏览: 82435 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

5.创建者模式(Builder)

阅读更多

创建者模式主要由5部分组成:抽象产品类、实现抽象产品类的具体类、抽象创建者类、实现抽象创建者类的具体类、组装类

 

说明:比工厂抽象工厂增加一个用来组装产品的类,客户端就不用知道对象的构建细节.

 

UML原理图:



 

 

 

例子:

 

package com.buider;

public class Client {

	public static void main(String[] args){
		Director diretor = new Director(new MotorcycleFactory());
		Motorcycle m = diretor.assembleMotorcycle();
	}
}




package com.buider;

/**
 * 
 * @Title: Director.java
 * @Description: 组装类
 * @author awfhome@163.com 
 * @date 2010-6-3 
 * @version V1.0
 */
public class Director {
	private Factory factory;
	
	public Director(Factory factory){
		this.factory = factory;
	}
	
	//这里进行组装
	public Motorcycle assembleMotorcycle(){
		
		Wheel w = factory.createWheel();
		w.bulid();
		
		Tyre t = factory.createTyre();
		t.bulid();
		
		Engine e = factory.createEngine();
		e.build();
		
		
		return new Motorcycle1();
	}

}






package com.buider;

/**
 * 
 * @Title: Engine.java
 * @Description: 发动机接口类
 * @author awfhome@163.com 
 * @date 2010-6-3 
 * @version V1.0
 */
public interface Engine {
	void build();

}




package com.buider;

public class Engine1 implements Engine {

	public void build() {
		System.out.println("组装摩托车发动机开始");

	}

}







package com.buider;

public interface Factory {
	
	Wheel createWheel();
	Tyre createTyre();
	Engine createEngine();
}







package com.buider;

/**
 * 
 * @Title: Motorcycle.java
 * @Description: 摩托车类接口
 * @author awfhome@163.com 
 * @date 2010-6-3 
 * @version V1.0
 */
public interface Motorcycle {
	void bulid();
}






package com.buider;

/**
 * 
 * @Title: Motorcycle1.java
 * @Description: 具体摩托车类
 * @author awfhome@163.com 
 * @date 2010-6-3 
 * @version V1.0
 */
public class Motorcycle1 implements Motorcycle{

	public void bulid() {
		System.out.println("组装摩托车开始");
		
	}

}




package com.buider;


public class MotorcycleFactory implements Factory {

	public Engine createEngine() {
		return new Engine1();
	}

	public Tyre createTyre() {
		return new Tyre1();
	}

	public Wheel createWheel() {
		return new Wheel1();
	}



}





package com.buider;

/**
 * 
 * @Title: Tyre.java
 * @Description: 摩托车轮胎接口类
 * @author awfhome@163.com 
 * @date 2010-6-3 
 * @version V1.0
 */
public interface Tyre {
	void bulid();
}









package com.buider;

/**
 * 
 * @Title: Tyre1.java
 * @Description:  摩托车轮胎具体类
 * @author awfhome@163.com 
 * @date 2010-6-3 
 * @version V1.0
 */
public class Tyre1 implements Tyre {

	public void bulid() {
		System.out.println("组装摩托车轮胎开始");

	}

}






package com.buider;

/**
 * 
 * @Title: Wheel.java
 * @Description: 车轮接口类
 * @author awfhome@163.com 
 * @date 2010-6-3 
 * @version V1.0
 */
public interface Wheel {
	void bulid();
}







package com.buider;

public class Wheel1 implements Wheel {

	public void bulid() {
		System.out.println("组装摩托车轮开始.");
		
	}

}










 

 

 

 

 

 

 

  • 大小: 14.5 KB
0
2
分享到:
评论

相关推荐

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

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

    设计模式-创建者模式(Builder)

    创建者模式,或称为Builder模式,是一种广泛应用的设计模式,在软件开发中扮演着重要角色。它主要用于将一个复杂对象的构造与其表示分离,以使得同样的构造过程可以创建不同的表示。这不仅提高了代码的可维护性,也...

    创建者模式(Builder)

    **创建者模式(Builder)** 创建者模式是一种设计模式,属于建造者模式,它将复杂的对象构造过程分离开来,使得相同的构造过程可以创建不同的表示。这种模式的主要优点在于能够隔离对象的构建过程,使代码更加清晰,...

    设计模式之创建模式Builder

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

    udp.rar_C Builder_NMUDP.pas_c++ BUILDER udp_c++builder UDP_udp

    5. **接收(Receiving)数据**: 数据接收是通过`recvfrom`函数完成的,它可以获取到来自任何地方的数据,并提供发送者的地址信息。 6. **多播(Multicast)**: UDP支持多播,允许数据包一次性发送到多个接收者,这...

    设计模式之创建者模式.pdf

    ### 设计模式之创建者模式详解 #### 一、创建者模式概述 创建者模式(Builder Pattern),又称建造者模式,是一种常用的软件设计模式。它主要用于解决对象创建时的复杂性和灵活性问题。创建者模式的核心思想是将一...

    zad.rar_C Builder_pyramid

    5. **VCL库**:熟悉C++ Builder中的VCL组件,如何使用它们创建用户界面,并与后台代码交互。 6. **图形渲染**:掌握如何在C++ Builder中绘制2D和3D图形,可能涉及到OpenGL或者其他图形库。 7. **事件处理**:理解...

    (创建型模式)Builder模式

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

    设计模式之建造者Builder模式

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

    [创建型模式]设计模式之建造者模式(Builder Pattern)

    【创建型模式】设计模式之建造者模式(Builder Pattern) 建造者模式(Builder Pattern)是设计模式中的一个创建型模式,它提供了一种方法来分步骤构造复杂的对象,使得构造过程和表示分离,使得同样的构建过程可以...

    net.rar_C Builder_网络 C++builder

    5. **使用TIdTCPServer和TIdTCPClient**:这两个组件分别用于创建TCP服务器和客户端。TIdTCPServer监听特定端口,接收客户端连接,并处理接收到的数据;TIdTCPClient则负责建立到服务器的连接,发送数据并接收回应。...

    设计模式-Builder模式demo

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

    bcb_pen.rar_C Builder

    作为初学者,你可以通过此项目了解C++Builder的基本用法,如创建新工程、添加源代码文件、设置界面元素等。 【标签】"c++_builder" 进一步确认了这个项目的核心技术栈,即C++Builder。C++Builder具有丰富的控件库和...

    C#设计模式_设计模式_C#_

    建造者模式(Builder) 4. 工厂方法模式(Factory Method) 5. 原型模式(Prototype)结构型: 6. 适配器模式(Adapter Pattern) 7. 桥接模式(Bridge Pattern) 8. 装饰模式(Decorator Pattern) 9. 组合模式(Composite ...

    PLC.rar_C builder PLC

    C++ Builder 是一款由 Embarcadero Technologies 提供的集成开发环境(IDE),它支持 C++ 编程语言,特别适用于创建高性能的桌面应用程序,包括工业自动化领域的应用。 描述中的“我想和大家一起交流开发一个自动化...

    23种设计模式 (创建型,结构型,行为型)

    建造者模式(Builder) 4. 工厂方法模式(Factory Method) 5. 原型模式(Prototype) 结构型: 6. 适配器模式(Adapter Pattern) 7. 桥接模式(Bridge Pattern) 8. 装饰模式(Decorator Pattern) 9. 组合...

    ed.rar_C Builder

    3. RAD(Rapid Application Development):C++Builder采用RAD模式,允许开发者快速构建应用程序,因为它支持可视化设计和事件驱动编程。 二、文本编辑器开发步骤 1. 创建新项目:打开C++Builder,选择"新建工程...

    newgame.rar_C Builder_网络 C++builder

    【标题】"newgame.rar_C++ Builder_网络 C++...通过研究这些文件,学习者可以深入了解C++ Builder如何结合网络技术实现一个实时的多人在线游戏。这种实践经验对于提升C++ Builder的使用技巧和网络编程能力非常有帮助。

    设计模式实现——创建者模式

    1. **简单创建者模式示例**:通过一个简单的例子,比如创建汽车对象,展示如何通过Builder接口和Concrete Builder类实现创建过程。 2. **产品类结构**:讲解产品类(如Car类)的定义,以及如何通过Builder接口来设置...

    创建者模式Demo

    5. **实例应用**:可能提供了关于如何在实际项目中应用创建者模式的案例,例如在游戏对象生成、配置文件解析或数据库连接池等场景中的应用。 6. **优缺点分析**:分析了创建者模式的优点,如提高了代码的可读性和可...

Global site tag (gtag.js) - Google Analytics