`

建造者模式学习以及与工厂模式的区别

阅读更多

设计模式之禅学习——建造者模式

 

一、建造者模式是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

 

二、建造者模式与工厂模式的区别:

             工厂模式一般都是创建一个产品,注重的是把这个产品创建出来就行,只要创建出来,不关心这个          产品的组成部分。从代码上看,工厂模式就是一个方法,用这个方法就能生产出产品。

             建造者模式也是创建一个产品,但是不仅要把这个产品创建出来,还要关系这个产品的组成细节,          组成过程。从代码上看,建造者模式在建造产品时,这个产品有很多方法,建造者模式会根据这些相同          方法但是不同执行顺序建造出不同组成细节的产品。

            可以比较两个模式的example代码,一比较就会比较出来,工厂模式关心整体,建造者模式关心细节。

 

三、建造者模式代码

 

1、建造者模式用于建造产品,其产品类一般都是一个模板(模板设计模式),所以一定会有产品类:

package com.wang.builderPattern;

/**
 * 产品类,通常实现了模板方法设计模式
 * @author HeJW
 *
 */
public class Product {
	
	//独立业务处理,一般会有多个业务方法,
	//根据这些方法不同实现细节,
	//体现出建造者模式的用处
	public void doSomething(){
		System.out.println("");
	}
	
}	

 

2、抽象建造者,这个建造者会定义产品的不同部分以及其他产品定义的细节问题,然后根据这些细节建造产品:

package com.wang.builderPattern;

/**
 * 抽象建造者
 * @author HeJW
 *
 */
public abstract class Builder {

	//设置产品的不同部分,以获得不同产品
	public abstract void setPart();
	
	//建造产品
	public abstract Product builderProduct();
	
}

 

3、具体的建造者,在具体的建造者中,一定会有一个产品的对象,通过对这个产品对象的组成部分定义,建造出具体不同细节的产品:

package com.wang.builderPattern;

/**
 * 具体建造者
 * @author HeJW
 *
 */
public class ConcerteProduct extends Builder {

	private Product product = new Product();
	
	//设置产品零件
	@Override
	public void setPart() {
		/**
		 * 产品类内的逻辑处理
		 */
	}

	@Override
	public Product builderProduct() {
		return product;
	}

}

 

4、导演类,这个类就是建造出可能出现的、具有不同细节的产品的建造者的集合,只要在客户端有导演类的实例,并且告诉导演类我要什么样的产品,导演类就会返回这个产品:

package com.wang.builderPattern;

/**
 * 导演类
 * @author HeJW
 *
 */
public class Director {

	private Builder builder = new ConcerteProduct();
	
	//构造不同的产品
	public Product getProduct(){
		/*
		 * 设置不同的零件,产生不同的产品
		 */
		builder.setPart();
		return builder.builderProduct();
	}
	
}

 

在客户端建造产品时:

package com.wang.builderPattern;

public class App {
	
	public static void main(String[] args) {
		
		Director productDirector = new Director();
		Product p = productDirector.getProduct();
		//...
	}
	
}

 

最后,只要记住,建造者模式是 适合建造具体细节的产品的设计模式就可以了。。。。。。

附上设计模式之禅这本书的建造者模式的实例代码(是以建造car为例的)

1
1
分享到:
评论

相关推荐

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

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

    设计模式之建造者模式

    建造者模式(Builder Pattern)是设计模式中的一种创建型模式,它允许我们分步骤构建复杂的对象,通过将构造过程与对象本身分离,使得同样的构造过程可以创建不同的表示。这种模式常用于当创建对象的步骤复杂或者...

    Java建造者模式源码

    Java建造者模式是一种设计模式,属于创建型模式,它的主要目的是通过隔离对象的构建过程和其表示,使得构造复杂对象的过程更加灵活。这种模式通常在需要创建对象的多个部分,并且这些部分可能需要以特定顺序组合时...

    建造者模式.pptx

    建造者模式是一种将“复杂对象的构建算法”与它的“部件及其组装方式”相分离的设计模式。这样做的目的是让构建算法能够独立于产品的部件变化,从而更好地适应需求的变化。该模式适用于以下几种情况: 1. 当创建复杂...

    设计模式例子,观察者模式,建造者模式

    在给定的压缩包文件中,"设计模式例子,观察者模式,建造者模式" 提到了两种重要的设计模式:观察者模式(Observer Pattern)和建造者模式(Builder Pattern)。下面我们将深入探讨这两种设计模式的概念、应用场景、...

    qt5编写的建造者模式程序

    【建造者模式】是软件工程中的一个设计模式,属于创建型模式,它隔离了对象的构造过程,并允许用户以步骤化的方式创建复杂对象。在Qt5框架中,我们可以利用其强大的C++支持来实现建造者模式,这对于创建复杂的UI或者...

    java设计模式【之】建造者模式【源码】【场景:车辆组装】

    java设计模式【之】建造者模式【源码】【场景:车辆组装】 将复杂的对象构建,与对象的使用进行分离 用户只需要通过简单流程即可创建出对象 方法调用顺序,步骤的不同实现 优点:封装性号,创建和使用分离,扩展性...

    建造者模式

    建造者模式是一种设计模式,属于创建型模式,它在软件工程中被广泛应用,尤其是在复杂的对象构建过程中。在安卓项目中,使用Java语言实现建造者模式,可以极大地提高代码的可读性和可维护性,同时也方便对对象的构建...

    day02 工厂模式+原型模式+建造者模式

    设计模式之工厂模式、原型模式和建造者模式 设计模式是一种软件设计的解决方案,能够使我们的代码更加灵活、可维护和可扩展。今天,我们将讨论三种设计模式:工厂模式、原型模式和建造者模式。 工厂模式 工厂模式...

    C# 设计模式-建造者模式

    建造者模式(Builder Pattern)是软件工程中一种用于创建对象的抽象工厂方法,它将复杂的对象构造过程分离开来,使得相同的构造过程可以创建不同的表示。这种模式在C#编程中广泛应用于创建对象的复杂性较高,或者...

    设计模式建造者模式PPT学习教案.pptx

    设计模式建造者模式知识点总结 一、建造者模式概述 建造者模式是一种对象创建型模式,它将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。该模式可以将客户端与包含多个部件的复杂对象...

    Java设计模式-建造者模式详解

    Java设计模式-建造者模式详解将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。生成器模式(Builder)是使用多个“小型”工厂来最终创建出一个完整对象。当我们使用Builder的时候,...

    建造者模式1

    与工厂方法模式相比,建造者模式更加关注零件的组装过程,而不是零件的创建过程。实例从实例的 UML 图中可以看出,产品的组成是不变的,具体如何装配产品由具体的建造者决定。各具体建造者相互独立,如果需要添加新...

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

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

    建造者模式【Builder Pattern】(二)问题改进

    建造者模式(Builder Pattern)是一种创建型设计模式,它允许我们分步骤构建复杂对象,而无需暴露构造过程的细节。这种模式将一个复杂的构建过程分解为一系列简单的步骤,使得构造过程可以有不同的解释,从而实现...

    Android利用建造者模式自定义Dialog

    建造者模式,作为一种设计模式,能够帮助我们优雅地构建复杂对象,它将对象的创建过程逐步分解,使得创建过程更加灵活,同时也使代码结构更加清晰。在本示例中,“Android利用建造者模式自定义Dialog”旨在利用这种...

    4. 建造者模式1

    建造者模式是一种设计模式,它的主要目标是解决创建复杂对象时面临的参数过多、构造过程复杂以及需要进行参数校验等问题。在Java等不支持默认参数和具名参数的编程语言中,这种模式显得尤为重要。 首先,建造者模式...

Global site tag (gtag.js) - Google Analytics