5.创建者模式(Builder)

创建者模式主要由5部分组成:抽象产品类、实现抽象产品类的具体类、抽象创建者类、实现抽象创建者类的具体类、组装类

 

说明:比工厂抽象工厂增加一个用来组装产品的类,客户端就不用知道对象的构建细节.

 

UML原理图:



 

 

 

例子:

 

package com.buider;

public class Client {

	public static void main(String[] args){
		Director diretor = new Director(new MotorcycleFactory());
		Motorcycle m = diretor.assembleMotorcycle();
	}
}




package com.buider;

/**
 * 
 * @Title: Director.java
 * @Description: 组装类
 * @author awfhome@163.com 
 * @date 2010-6-3 
 * @version V1.0
 */
public class Director {
	private Factory factory;
	
	public Director(Factory factory){
		this.factory = factory;
	}
	
	//这里进行组装
	public Motorcycle assembleMotorcycle(){
		
		Wheel w = factory.createWheel();
		w.bulid();
		
		Tyre t = factory.createTyre();
		t.bulid();
		
		Engine e = factory.createEngine();
		e.build();
		
		
		return new Motorcycle1();
	}

}






package com.buider;

/**
 * 
 * @Title: Engine.java
 * @Description: 发动机接口类
 * @author awfhome@163.com 
 * @date 2010-6-3 
 * @version V1.0
 */
public interface Engine {
	void build();

}




package com.buider;

public class Engine1 implements Engine {

	public void build() {
		System.out.println("组装摩托车发动机开始");

	}

}







package com.buider;

public interface Factory {
	
	Wheel createWheel();
	Tyre createTyre();
	Engine createEngine();
}







package com.buider;

/**
 * 
 * @Title: Motorcycle.java
 * @Description: 摩托车类接口
 * @author awfhome@163.com 
 * @date 2010-6-3 
 * @version V1.0
 */
public interface Motorcycle {
	void bulid();
}






package com.buider;

/**
 * 
 * @Title: Motorcycle1.java
 * @Description: 具体摩托车类
 * @author awfhome@163.com 
 * @date 2010-6-3 
 * @version V1.0
 */
public class Motorcycle1 implements Motorcycle{

	public void bulid() {
		System.out.println("组装摩托车开始");
		
	}

}




package com.buider;


public class MotorcycleFactory implements Factory {

	public Engine createEngine() {
		return new Engine1();
	}

	public Tyre createTyre() {
		return new Tyre1();
	}

	public Wheel createWheel() {
		return new Wheel1();
	}



}





package com.buider;

/**
 * 
 * @Title: Tyre.java
 * @Description: 摩托车轮胎接口类
 * @author awfhome@163.com 
 * @date 2010-6-3 
 * @version V1.0
 */
public interface Tyre {
	void bulid();
}









package com.buider;

/**
 * 
 * @Title: Tyre1.java
 * @Description:  摩托车轮胎具体类
 * @author awfhome@163.com 
 * @date 2010-6-3 
 * @version V1.0
 */
public class Tyre1 implements Tyre {

	public void bulid() {
		System.out.println("组装摩托车轮胎开始");

	}

}






package com.buider;

/**
 * 
 * @Title: Wheel.java
 * @Description: 车轮接口类
 * @author awfhome@163.com 
 * @date 2010-6-3 
 * @version V1.0
 */
public interface Wheel {
	void bulid();
}







package com.buider;

public class Wheel1 implements Wheel {

	public void bulid() {
		System.out.println("组装摩托车轮开始.");
		
	}

}










 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值