`

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

阅读更多

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

 

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

 

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

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

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

            可以比较两个模式的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 图中可以看出,产品的组成是不变的,具体如何装配产品由具体的建造者决定。各具体建造者相互独立,如果需要添加新...

    python 项目里常用的设计模式 组合模式 策略模式 抽象工厂 代理模式 工厂模式 观察者模式 简单工厂 建造者模式 模板模式

    python 项目里常用的设计模式 单例模式 组合模式 策略模式 抽象工厂 代理模式 工厂模式 观察者模式简单工厂 建造者模式 模板模式 桥接多维度 桥接模式 适配器模式 外观模式 享元模式 责任链组合模式

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

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

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

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

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

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

Global site tag (gtag.js) - Google Analytics