(4/23)建造者模式

建造者模式(生产器模式):

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

角色组成:

Director导演

Product产品类

Builder抽象建造者

ConcretwBuilder具体建造者

//product产品类
public class Phone {
	private String name;
	private String MainBoard;
	private String system;
	private String isPassTest;

	public void setName(String name) {
		this.name = name;
	}

	public void setMainBoard(String mainBoard) {
		MainBoard = mainBoard;
	}

	public void setSystem(String system) {
		this.system = system;
	}

	public void setIsPassTest(String isPassTest) {
		this.isPassTest = isPassTest;
	}
	public void getProductInfor(){
		System.out.println("Name : "+this.name);
		System.out.println("MainBoard : "+this.MainBoard);
		System.out.println("system : "+this.system);
		System.out.println("Test : "+this.isPassTest);

	}
}
//抽象构造者
public interface BuilderPhone {
	public void buildPhoneName();
	public void buildMailBoard();
	public void buildSystem();
	public void judgeIsPassTest();
}
//ConcretwBuilder具体建造者
public class BuildHUAWEI implements BuilderPhone {

	private Phone HUAWEI = new Phone();
	public void buildPhoneName() {
		HUAWEI.setName("HUAWEI");
		System.out.println("HUAWEI is building...");
	}

	public void buildMailBoard() {
		HUAWEI.setMainBoard("c8812");
		System.out.println("MainBoard is ok...");
	}

	public void buildSystem() {
		HUAWEI.setSystem("Andriod4.4");
		System.out.println("System is ok...");
	}
	public void judgeIsPassTest() {
		HUAWEI.setIsPassTest("true");
		System.out.println("Test is ok...");
	}

	public Phone getPhone(){
		return HUAWEI;
	}
}

只要构造不同的构造者,就会有不同对象的建造过程。

//Director导演
public class DirectorBuildHUAWEI {
	public void construct(BuildHUAWEI newPhone){
		newPhone.buildPhoneName();
		newPhone.buildMailBoard();
		newPhone.buildSystem();
		newPhone.judgeIsPassTest();
	}
}
//测试类
public class BuilderPartternDemo {

	public static void main(String[] args) {

		DirectorBuildHUAWEI director = new DirectorBuildHUAWEI();
		BuildHUAWEI huawei = new BuildHUAWEI();
		director.construct(huawei);
		Phone newPhone = huawei.getPhone();
		newPhone.getProductInfor();
	}

}

总结:

建造者模式和抽象工厂模式十分相似,虽然都是用来建造庞大的复杂的对象,但是注重点不同,主要的区别:

抽象工厂模式,产品对象时直接返回的,其强调的是为创建多个存在相互关系的对象提供一个统一的接口。

工厂模式关注的是创建单个产品

建造者模式,模式强调的是一步步创建对象,并通过相同的创建过程可以获得不同的结果对象

建造者模式则关注创建符合对象,多个部分。

关于应用:

相同的方法,不同的执行顺序,产生不同的结果时 ,使用建造者模式

多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时,使用建造者模式

产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效能,使用建造者模式

到今天才明白是什么设计模式,设计模式注重的思想,一个人有一个人的实现方式,重要的是我该如何应用这个思想

时间: 2024-10-10 22:00:40

(4/23)建造者模式的相关文章

23种设计模式----------建造者模式

建造者模式:像是模板方法模式的升级.也叫生成器模式.将一个复杂对象的构造与它的表示分离,使得同样的构建过程可以创建不同的表示.其实就是创建一大类的东西, 但是具体又有些差异. 在建造者模式中,一般有四个角色: 1,Product产品类. 该类一般实现了模板方法模式. 2,Builder抽象的建造者. 规范产品的组建,一般是由子类实现. 3,ConcreteBuilder具体的建造者. 实现抽象类定义的所有方法,并且可以返回一个组建好的具体对象. 4,Director导演类(一般是包涵多种具体产品

23种设计模式--建造者模式-Builder Pattern

一.建造模式的介绍       建造者模式就是将零件组装成一个整体,用官方一点的话来讲就是将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示.生活中比如说组装电脑,汽车等等这些都是建造者模式的具体体现,组装电脑反应到软件上就是一个复杂的对象,然后我们使用建造者模式的时候需要抽象一个建造类,抽象一个指挥者指挥具体实现的那个类,然后就是具体实现这个对象的类,这样就避免了每新创建一个不同的复杂对象就需要重新写一下这个类,这样就只要重写建造者就可以了,我们接下来就用组装电脑这个来说明一

【Unity3D与23种设计模式】建造者模式(Builder)

GoF中定义: "将一个复杂的构建流程与它的对象表现分离出来,让相同的构建流程可以产生不同的对象行为表现." 建造者模式可以分为两个步骤来实施: 1.将复杂的构建流程独立出来,并将整个流程分成几个步骤,其中的每一个步骤可以是一个功能组件的设置,也可以是参数的指定,并且在一个构建方法中,将这些步骤串接起来. 2.定义一个专门实现这些步骤的实现者,这些实现者知道每一个部分该如何完成,并且能接受参数来决定要产出的功能,但不知道整个组装流程是什么. 把握两个原则:"流程分析安排&qu

23种设计模式之建造者模式

建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. package designMode.builder; import java.util.LinkedList; import java.util.List; class Product { List<String> parts = new LinkedList<String>(); public void add(String part){ parts.add(part);

23种设计模式之建造者模式代码实例

建造者模式在实际工作中常常是在测试类造数据的时候使用,继承既定的Builder类之后, 新的Builder类可以方便的"建造"各种属性.具体见如下代码. 先有默认的既定Builder类: public interface Builder { public void buildPartA(); public void buildPartB(); public void buildPartC(); } 然后有这个Builder类需要建造的产品类: public class Product

Java设计模式学习笔记,三:建造者模式

建造者模式:实现了构建和装配的解耦,即对象的各个子组件单独构建,再进行装配,从而建造完整对象. 该模式适用于构建较为复杂的对象(多个子组件). 不同的构建者,使用相同的装配者,可以建造不同的对象实例.相同的构建者,不同的装配顺序,也可能建造出不同的对象实例. 举例: 汽车对象,子组件包括引擎.轮子和车体. Audi汽车构建者,负责制造Audi牌各个子组件.BMW汽车构建者,负责制造BMW牌各个子组件.然后将子组件统一送至汽车装配者的生产线中进行组装,最后会建造出Audi牌汽车和BMW汽车. 以下

java/android 设计模式学习笔记(10)---建造者模式

这篇博客我们来介绍一下建造者模式(Builder Pattern),建造者模式又被称为生成器模式,是创造性模式之一,与工厂方法模式和抽象工厂模式不同,后两者的目的是为了实现多态性,而 Builder 模式的目的则是为了将对象的构建与展示分离.Builder 模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程.一个复杂的对象有大量的组成部分,比如汽车它有车轮.方向盘.发动机.以及各种各样的小零件,要将这些部件装配成一辆汽车,这个装配过

设计模式学习-建造者模式

1.定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 2.类图 3.代码示例 1 package com.zhaoyangwoo.builder; 2 3 /** 4 * Created by john on 16/5/7. 5 * 场景类 6 */ 7 public class Builder { 8 9 public static void Main(){ 10 BuilderInterface bi = new ConceptBuilder(); 11 Di

23中设计模式

http://zz563143188.iteye.com/blog/1847029 设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.项目中合理的运用设计模式可以完美的