`
shuofenglxy
  • 浏览: 194420 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

菜鸟硕枫设计模式系列之6 建造者模式

阅读更多
建造者模式是设计模式中另一个重要的创建对象的方法模式。它的特点主要是稳定了创建的过程,比如下面的例子中就是每个产品的创建过程都包括创建A部分和创建B部分,但不同的builder可以有自己的方式去创建产品,比如不同的房地产商可以建不同的房子【大房子、小房子】,只要建造过程稳定一致就可以了。

建造者模式类图:
               


建造者接口:
package builderPattern;

public interface Builder {
	
	Product getProduct();
	Object buildProductPartA();
	Object buildProductPartB();
	
}


具体建造者:


public class ConcreteBuilder1 implements Builder{

	public Object buildProductPartA() {
		
		System.out.println("build Big ProductPartA with tools .");
		Object object = new Object();
		return object;
	}

	public Object buildProductPartB() {
		
		System.out.println("build Big ProductPartB with tools .");
		Object object = new Object();
		return object;
	}

	public Product getProduct() {
		// TODO Auto-generated method stub
		return new Product(buildProductPartA(),buildProductPartB());
	}

	
}


package builderPattern;

public class ConcreteBuilder2 implements Builder{

	public Object buildProductPartA() {
		
		System.out.println("build Small ProductPartA with tools .");
		Object object = new Object();
		return object;
	}


	public Object buildProductPartB() {
		
		System.out.println("build Small ProductPartB with tools .");
		Object object = new Object();
		return object;
	}


	public Product getProduct() {
		// TODO Auto-generated method stub
		return new Product(buildProductPartA(),buildProductPartB());
	}

	
}


具体产品:
package builderPattern;

public class Product {

	private Object partA;
	private Object partB;
	
	public Product(Object partA,Object partB){
		this.partA = partA;
		this.partB = partB;
	}
}


指挥者:
package builderPattern;

public class Director {

	private Builder builder;
	
	public Director(Builder builder){
		this.builder = builder;
	}
	
	public Product getProduct(){
		return builder.getProduct();
	}
}


测试类:
package builderPattern;

public class BuilderTest {

	public static void main(String[] args){
		
		Builder builder = new ConcreteBuilder1();
		Director director = new Director(builder);
		
		director.getProduct();
		
		System.out.println("建造另外一件产品");
		
		director = new Director(builder);
		Builder builder2 = new ConcreteBuilder2();
		
		director.getProduct();
	}
}


说明:说明:产品这块当然也可以通过抽象出一个抽象类或接口了,只要这一类产品创建过程一样,都可以通过建造者模式去创建。
  • 大小: 28.8 KB
分享到:
评论

相关推荐

    Java设计模式菜鸟系列教程

    Java设计模式菜鸟系列教程 本教程对Java 23种设计模式进行了总结,涵盖了策略模式、观察者模式、装饰者模式、工厂方法模式、抽象工厂模式、单例模式、命令模式、适配器模式、外观模式、模板方法模式、迭代器模式、...

    设计模式学习经典篇之菜鸟篇

    本资源“设计模式学习经典篇之菜鸟篇”旨在为初学者提供一个全面而通俗易懂的设计模式学习路径。 设计模式的核心在于重用已验证的解决方案,以提高代码的可读性、可维护性和可扩展性。根据GOF(Gamma, Helm, ...

    23种设计模式知识要点.pdf_设计模式_

    设计模式是软件工程中的一种最佳实践,用于解决在软件开发过程中常见的问题,提供了一套可重用的解决方案。这些模式都是经验丰富的软件开发者在长期实践中总结出来的,它们可以帮助我们写出更加灵活、可维护和可扩展...

    设计模式笔记

    设计模式是软件开发中的一种重要概念,它是一套经过验证的、通用的解决方案,用来解决在软件设计过程中频繁出现的问题。设计模式的种类主要分为三类:创建型模式、结构型模式和行为型模式。 创建型模式关注的是对象...

    C#23种设计模式【完整】(亲测可用)

    4. 建造者模式(Builder Pattern):将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 5. 原型模式(Prototype Pattern):通过复制已有对象来创建新对象,减少创建新对象的开销。 6. ...

    NET 设计模式

    3、建造者模式 4、观察者模式 5、抽象工厂模式 6、状态模式 7、适配器模式 8、备忘录模式 9、组合模式 10、简单工厂模式 11、迭代器模式 12、单例模式 13、桥接模式 14、命令模式 15、职责链模式 16、中介者模式 17...

    23种软件设计模式简述

    4. **建造者模式**:将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 5. **原型模式**:通过复制一个已有实例来创建新的实例,而不是通过构造函数进行实例化。 ### 结构型模式 6. **...

    Java之美[从菜鸟到高手演变]之设计模式

    总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式...

    百度地图毕业设计源码-Design-Patterns:设计模式

    本章系Java之美[从菜鸟到高手演变]系列之设计模式,我们会以理论与实践相结合的方式来进行本章的学习,希望广大程序爱好者,学好设计模式,做一个优秀的软件工程师! 企业级项目实战(带源码)地址: 23种模式java实现...

    设计模式整理

    - 建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。它适用于创建复杂对象的场景,比如通过不同参数构建同一种产品。 - 原型模式(Prototype):用原型实例指定...

    java常用数据结构及算法集锦

    建造者模式 结构模式 代理模式 外观模式 适配器模式 装饰模式 组合模式 享元模式 桥接模式 行为模式 观察者模式 模板方法模式 策略模式 命令模式 调停者模式 备忘录模式 解释器模式 迭代器模式 状态模式 责任链...

    资料库,关于面向对象以及4大特性,8大原则,24设计模式

    1. 创建型模式:单例(Singleton)、工厂方法(Factory Method)、抽象工厂(Abstract Factory)、建造者(Builder)、原型(Prototype)。 2. 结构型模式:适配器(Adapter)、装饰器(Decorator)、代理(Proxy)...

    TrabalhoPattern27-11

    可能包括单例模式、工厂模式、观察者模式、装饰器模式、适配器模式、策略模式、建造者模式、代理模式等。 2. **文档**:可能有README文件,解释项目的背景、目标、实现的设计模式以及如何运行项目。还可能包含设计...

    java面试资料汇总 面试专题

    4. 设计模式:工厂模式、单例模式、建造者模式、观察者模式等23种设计模式的应用与理解。 5. Spring框架:IoC(控制反转)、AOP(面向切面编程)、Spring Boot、Spring Cloud等相关知识。 三、Java并发编程 1. 并发...

    java面试笔试题

    可能会讨论到设计模式,如工厂模式、单例模式、建造者模式、观察者模式等。 3. **JVM**:Java虚拟机的工作原理,包括类加载机制、内存模型(堆、栈、方法区、本地方法栈)、JVM优化和调优策略,以及如何分析和解决...

Global site tag (gtag.js) - Google Analytics