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

设计模式之构建者模式-学习笔记

 
阅读更多

先上个简陋的类图,后面把rose专业的画类图软件装上,自己为了学习留个笔记,方便以后查找使用,以下的例子从构建一个Person展开。

 

Coding:

1、构建者接口设计

public interface IBuilder {

	public void buildHead();

	public void buildBody();

	public void buildFoot();

	public Person buildPerson();
}

 2、Person实体类

public class Person {

	private String head;
	private String body;
	private String foot;

	public String getHead() {
		return head;
	}

	public void setHead(String head) {
		this.head = head;
	}

	public String getBody() {
		return body;
	}

	public void setBody(String body) {
		this.body = body;
	}

	public String getFoot() {
		return foot;
	}

	public void setFoot(String foot) {
		this.foot = foot;
	}

}

 3、构建一个普通人

public class HumanBuilder implements IBuilder {

	private Person person;

	public HumanBuilder() {
		this.person = new Person();
	}

	@Override
	public void buildBody() {

		this.person.setBody("普通人的身体*****************");
	}

	@Override
	public void buildFoot() {
		this.person.setFoot("普通人的脚*****************");
	}

	@Override
	public void buildHead() {
		this.person.setHead("普通人的头*****************");
	}

	@Override
	public Person buildPerson() {
		return this.person;
	}

}

 4、构建一个变形金刚

public class TransformerBuilder implements IBuilder {

	private Person person;

	public TransformerBuilder() {
		this.person = new Person();
	}

	@Override
	public void buildBody() {

		this.person.setBody("变形金刚的身体*****************");
	}

	@Override
	public void buildFoot() {
		this.person.setFoot("变形金刚的脚*****************");
	}

	@Override
	public void buildHead() {
		this.person.setHead("变形金刚的头*****************");
	}

	@Override
	public Person buildPerson() {
		return this.person;
	}

}

 5、建造者构建导向

//构建人的构建导向
public class PersonDirector {

	public Person constructorPerson(IBuilder builder) {
		builder.buildHead();
		builder.buildBody();
		builder.buildFoot();
		return builder.buildPerson();
	}

}

 6、客户端调用

public class Client {

	public static void main(String[] args) {
		PersonDirector pd = new PersonDirector();
		// Person p = pd.constructorPerson(new HumanBuilder());
		Person p = pd.constructorPerson(new TransformerBuilder());

		System.out.println(p.getHead());
		System.out.println(p.getBody());
		System.out.println(p.getFoot());
	}

}

 7、构建者模式和工厂模式有其相通的地方,有兴趣的朋友可以对照着工厂模式和构建者模式做一个比较,构建者模式在某些应用场景下是非常适合和构建者模式结合使用的。



 

  • 大小: 122.4 KB
分享到:
评论

相关推荐

    HeadFirst 设计模式学习笔记2--观察者模式 demo

    总的来说,HeadFirst设计模式的学习笔记2关于观察者模式的演示,旨在帮助开发者理解如何使用观察者模式来构建可扩展的系统。通过实际的代码示例,我们可以更深入地掌握这一模式,并将其应用到日常开发中,提升代码的...

    设计模式之美—学习笔记

    在这个“设计模式之美”的学习笔记中,我们将探讨一些主要的设计模式,以及它们在实际开发中的应用。 首先,我们从创建型模式开始。这类模式主要用于对象的创建,如单例模式(Singleton)、工厂模式(Factory ...

    《设计模式学习笔记》

    《设计模式学习笔记》主要探讨了GOF的23种设计模式以及类设计的基本原则,旨在帮助开发者理解和应用这些经过时间验证的成熟解决方案。设计模式是面向对象软件设计中的核心概念,它们为解决常见的设计问题提供了标准...

    23个设计模式图解--学习笔记

    在《23个设计模式图解--学习笔记》中,我们探讨了这些模式,以便于理解和应用到实际开发中。以下是这23个设计模式的详细说明: 1. **工厂方法**(Factory Method):定义一个用于创建对象的接口,让子类决定实例化...

    Java 版设计模式学习笔记-java-design-patterns.zip

    这个“Java版设计模式学习笔记”涵盖了多种设计模式,旨在帮助开发者更好地理解和应用这些模式。让我们深入探讨一下其中可能包含的关键知识点。 一、单例模式 单例模式确保一个类只有一个实例,并提供一个全局访问...

    HeadFirst设计模式学习笔记

    《HeadFirst设计模式学习笔记》是一份详尽的资料,旨在帮助读者深入理解并掌握设计模式这一编程领域的核心概念。设计模式是软件工程中的一种最佳实践,它在解决常见问题时提供了一种标准的解决方案,使得代码更易于...

    韩顺平_Java设计模式笔记.docx

    通过以上内容,我们可以看到韩顺平老师的Java设计模式笔记涵盖了设计模式的基础概念、常见面试题解析、设计原则等内容,并通过具体案例来阐述设计模式的实际应用价值,旨在帮助学习者深刻理解并掌握设计模式,从而在...

    23种设计模式学习笔记

    这个“23种设计模式学习笔记”文档将引导你深入理解这些模式,并帮助你在实际编程中有效地应用它们。以下是对23种设计模式的详细解读: 1. **单例模式**:确保一个类只有一个实例,并提供全局访问点。它常用于控制...

    《设计模式解析》第2版学习笔记

    ### 《设计模式解析》第2版学习笔记关键知识点总结 #### 第一部分 面向对象软件开发简介 ##### 第一章 面向对象范型 - **面向对象范型概览**: - 本章通过对比结构化程序设计来引入面向对象的概念。 - 强调了...

    设计模式笔记

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决问题的...设计模式笔记中的内容应该涵盖了以上所述的各种模式,通过深入学习和实践,你可以将这些模式应用到实际项目中,提升自己的编程技能和设计能力。

    Java设计模式学习笔记.pdf

    在学习Java设计模式时,掌握其概念、应用、优点和缺点非常重要。设计模式是软件开发中经常使用的一种通用解决方案模板,用于解决特定上下文中的常见问题。它们源于设计模式的研究,通常被认为是软件设计中的最佳实践...

    23种设计模式学习笔记及源码

    这个压缩包文件包含了23种设计模式的学习笔记和源码,旨在帮助开发者深入理解并熟练运用这些模式。以下是对每种设计模式的详细解释,以及它们在Java编程中的应用。 1. **单例模式**:确保一个类只有一个实例,并...

    图解设计模式 ,结城浩著 学习笔记

    根据给定的信息“图解设计模式,结城浩著学习笔记”,我们可以推断出这份文档主要涉及了设计模式的学习和理解。《图解设计模式》是一本由日本著名程序员结城浩撰写的书籍,该书以图形化的方式深入浅出地讲解了软件...

    根据《JAVA与设计模式》整理的笔记及示例代码

    这份"根据《JAVA与设计模式》整理的笔记及示例代码"涵盖了Java语言和设计模式的核心概念,旨在帮助开发者理解和应用这些模式。 一、设计模式的基本概念 设计模式是对在特定情境下软件设计问题的解决方案的一种描述...

    设计模式学习笔记

    设计模式和设计原则共同构成了软件设计的基石,帮助开发者构建出可维护、可扩展、可复用的高质量软件。在实际开发过程中,灵活运用这些模式和原则,可以有效提升代码的结构和质量,减少未来可能出现的问题,使软件...

    韩顺平_java设计模式笔记

    韩顺平老师的课程通过实际案例、图解和源码分析,逐步引导学习者理解并掌握设计模式。课程的目标是让学员不仅能理解模式的本质,还能在实际工作中灵活运用,优化程序结构,解决实际问题。设计模式的学习对于成长为一...

    图解java设计模式_学习笔记_java开发

    这份"图解java设计模式_学习笔记"是针对Java开发者深入理解和应用设计模式的重要资源。在这里,我们将深入探讨Java设计模式的核心概念、分类以及它们在实际开发中的应用。 设计模式分为三大类:创建型、结构型和...

    Head.First 设计模式学习笔记.pdf

    ### Head.First 设计模式学习笔记知识点总结 #### 一、设计模式概述 设计模式是一种用于解决软件设计中常见问题的标准化方法。通过采用设计模式,开发者可以提高代码的复用性、灵活性和可维护性。《Head First 设计...

    《设计模式》学习笔记

    ### 设计模式学习笔记 #### 引言 设计模式(Design Patterns)是在软件设计领域内广泛应用的一种实践指南,它提供了一系列解决常见问题的方案。设计模式可以被理解为面向对象软件设计的经验总结,是对特定面向对象...

Global site tag (gtag.js) - Google Analytics