`

设计模式之-建造者模式-Builder

阅读更多

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

 

   适用性

    1.当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。

    2.当构造过程必须允许被构造的对象有不同的表示时。
			
参与者
    1.Builder
      为创建一个Product对象的各个部件指定抽象接口。

    2.ConcreteBuilder
      实现Builder的接口以构造和装配该产品的各个部件。
      定义并明确它所创建的表示。
      提供一个检索产品的接口。

    3.Director
      构造一个使用Builder接口的对象。

    4.Product
      表示被构造的复杂对象。ConcreteBuilder创建该产品的内部表示并定义它的装配过程。
      包含定义组成部件的类,包括将这些部件装配成最终产品的接口。
package pack.java.model;

public class Person {
	private String header;
	private String body;
	private String foot;
	
	public Person() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	public Person(String header, String body, String foot) {
		super();
		this.header = header;
		this.body = body;
		this.foot = foot;
	}
	
	public String getHeader() {
		return header;
	}
	public void setHeader(String header) {
		this.header = header;
	}
	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;
	}
}
 
package pack.java.model;

public class Man extends Person {

}
 
package pack.java.buliderinterface;

import pack.java.model.Person;

public interface PersonBulider {
	/**
	 * 创建头部;
	 */
	public void buliderHeader();
	
	/**
	 * 创建身体;
	 */
	public void buliderBody();
	
	/**
	 * 创建脚;
	 */
	public void buliderFoot();
	
	/**
	 * 创建一个完整的人;
	 * @return
	 */
	public Person buliderPerson();
}
 
package pack.java.buliderinterfaceimpl;

import pack.java.buliderinterface.PersonBulider;
import pack.java.model.Person;

public class ManBuilder implements PersonBulider{
	
	private Person person = null;
	
	public ManBuilder(){
		person =  new Person();
	}
	
	public void buliderBody() {
		// TODO Auto-generated method stub
		person.setBody("创建男人的身体!");
	}

	public void buliderFoot() {
		// TODO Auto-generated method stub
		person.setFoot("创建男人的脚!");
	}

	public void buliderHeader() {
		// TODO Auto-generated method stub
		person.setHeader("创建男人的头部!");
	}

	public Person buliderPerson() {
		// TODO Auto-generated method stub
		return person;
	}

}
 
package pack.java.buliderinterfaceimpl;

import pack.java.buliderinterface.PersonBulider;
import pack.java.model.Person;

public class PersonDirector {
	/**
	 * 构造人的方法;
	 * 传入接口;
	 * @param personBulider
	 * @return 一个人的实体;
	 */
	public Person constructPerson(PersonBulider personBulider){
		personBulider.buliderHeader();
		personBulider.buliderBody();
		personBulider.buliderFoot();
		Person person = personBulider.buliderPerson();
		return person;
	}
}
 
package pack.java.bulider.test;

import pack.java.buliderinterfaceimpl.ManBuilder;
import pack.java.buliderinterfaceimpl.PersonDirector;
import pack.java.model.Person;

public class TestBuilderPersion {
	public static void main(String[] args) {
		PersonDirector personDirector = new PersonDirector();
		Person person = personDirector.constructPerson(new ManBuilder());
		System.out.println(person.getHeader());
		System.out.println(person.getBody());
		System.out.println(person.getFoot());
	}
}
 
运行结果:
创建男人的头部!
创建男人的身体!
创建男人的脚!
 
 
分享到:
评论

相关推荐

    设计模式之建造者Builder模式

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

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

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

    设计模式-------建造模式

    设计模式之---建造模式 1,建造模式属于对象的创建模式,是将一个产品的内部表象和产品的生产分割出来 2.使用原因:为了将构建复杂对象的过程和它的不见解耦; 3 使用情况:建造模式利用一个导演着对象和一个具体...

    设计模式-建造者模式

    建造者模式(Builder Pattern)是一种创建型设计模式,它提供了一种方法来分步骤构建复杂的对象,使得构建过程和表示分离,使得同样的构建过程可以创建不同的表示。这种模式经常在对象的构造过程中需要进行多种选择...

    Java 设计模式-建造者模式(Builder)Android讲解

    建造者模式(Builder)是Java设计模式中的一种创建型模式,它允许我们分步骤构建复杂的对象,而无需暴露其构造过程。在Android开发中,这种模式尤其有用,因为Android组件如Activity、Fragment等的初始化过程通常...

    设计模式精解-GoF-23种设计模式解析--附C++源代码

    - 建造者模式(Builder):将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 - 对象池模式(Pool):通过重用已创建的对象来减少对象的创建和销毁次数。 2. **结构型模式**:这类模式...

    设计模式实验报告-建造者

    建造者模式是一种软件设计模式,属于创建型模式之一,主要用于解决创建复杂对象的问题。在实际应用中,当对象的构造过程过于复杂,涉及到多个属性或者子对象的组合时,直接通过构造函数创建可能会导致代码混乱、难以...

    4.设计模式-建造者模式1

    "设计模式-建造者模式" 设计模式是软件开发中常用的解决问题的方法和模式,旨在提高软件的可维护性、灵活性和可重用性。设计模式可以分为三大类:创建型模式、结构型模式和行为型模式。今天,我们将讨论创建型模式...

    c++设计模式-创建型模式-建造者模式

    **建造者模式(Builder Pattern)**是软件设计模式中的一种创建型模式,它允许我们分步骤构建复杂的对象,而无需暴露构建过程。在C++中,这种模式常用于将对象的创建过程与使用过程分离,使得对象的构建更加灵活,...

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

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

    C#设计模式之建造者(Builder)模式示例源代码

    在深入探讨C#设计模式中的建造者(Builder)模式之前,我们先来理解一下什么是设计模式。设计模式是在软件工程中解决常见问题的一种通用可重用解决方案,它们提供了一种标准化的方法来解决软件开发中遇到的挑战。...

    设计模式-建造者模式(讲解及其实现代码)

    建造者模式,是一种创建型设计模式,它提供了一种创建对象的最佳方式,特别是在对象的构建过程比较复杂,需要多个步骤时。在建造者模式中,我们创建一个指导对象(Director),该对象负责组织构建过程,而具体的构建...

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

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

    c++-设计模式之“建造者模式(Builder)”

    建造者模式(Builder Pattern)是一种创建型设计模式,允许使用多个简单的对象一步一步构建一个复杂的对象。它将对象的构建过程与表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式的组成 产品...

    设计模式C++学习之建造者模式(Builder)

    建造者模式(Builder)是设计模式中的一种结构型模式,它允许我们分步骤构建复杂的对象,而无需暴露构造过程。这种模式将构造过程与对象的表示分离,使得同样的构造过程可以创建不同的表示。在C++中,建造者模式通常...

    设计模式——建造者模式

    建造者模式是一种结构型设计模式,它允许我们分步骤创建复杂对象,而无需暴露构建过程的内部细节。这种模式在Java编程中非常常见,尤其是在处理需要多种构建方式或需要隔离对象构造过程的场景。 建造者模式的核心...

    设计模式-Builder模式demo

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

    讲故事,学(Java)设计模式-建造者模式Java开发Ja

    建造者模式,是Java设计模式中的重要组成部分,它在软件工程中扮演着构造复杂对象的角色。这个模式的主要目的是将对象的构建过程与表示分离,使得同样的构建过程可以创建不同的表示。通过使用建造者模式,我们可以...

    设计模式精解-GoF 23种设计模式解析附C++实现源码

    GoF(Gang of Four)所提出的23种设计模式,被认为是面向对象编程中最核心的设计原则之一。这些模式可以帮助开发者解决常见的编程问题,并提高代码的可复用性和可维护性。 #### 创建型模式 创建型模式关注的是对象...

    设计模式专题之(四)建造者模式---设计模式建造者模式示例代码(python--c++)

    在《设计模式专题之(四)建造者模式》中,我们将探讨如何通过Python和C++实现建造者模式。首先,我们要理解建造者模式的基本组件: 1. **产品(Product)**:这是要构建的复杂对象。在Python和C++中,这通常会定义...

Global site tag (gtag.js) - Google Analytics