论坛首页 Java企业应用论坛

java建造模式

浏览 2245 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-11-07  
建造模式是将复杂的内部创建封装在内部,对于外部调用的人来说,只需要传入建造者和建造工具,对于内部
是如何建造成成品的,调用者无需关心。

//首先是一个建造工具(builder)接口
public interface builder {

	void zhuji();//主机
	void jianpan();//键盘
	void xianshiqi();//显示器
	void shubiao();//鼠标
	computer getcomputer();//返回产品
}


//建造工具的具体建造方式:
public class ConcreteBuilder implements builder {

	private String zhuji;
	private String xianshiqi;
	private String jianpan;
	private String shubiao;
	@Override
	public void zhuji() {
		// 
		System.out.println("生产主机");
		zhuji= "MAC主机";
	}

	@Override
	public void jianpan() {
		// 
		System.out.println("生产键盘");
		jianpan= "MAC键盘";
	}

	@Override
	public void xianshiqi() {
		// 
		System.out.println("生产显示器");
		xianshiqi= "MAC显示器";
	}

	@Override
	public void shubiao() {
		// 
		System.out.println("生产鼠标");
		shubiao= "MAC鼠标";
	}

	@Override
	public computer getcomputer() {
		// 
		System.out.println("电脑生产完成");
		computer c = new computer();
		c.setJianpan(jianpan);
		c.setShubiao(shubiao);
		c.setXianshiqi(xianshiqi);
		c.setZhuji(zhuji);
		return c;
	}

}

//然后就是建造者Director接口,建造者利用建造工具(builder)进行创建产品(construct方法)
public class Director {

	private builder builder;
	public Director(builder builder)
	{
		this.builder=builder;
	}
	
	//将零件 主机  显示器  键盘 鼠标  组成复杂的对象
	//组装电脑的过程
	public void construct()
	{
		builder.zhuji();
		builder.xianshiqi();
		builder.shubiao();
		builder.jianpan();
	}
}

public class computer {

	private String zhuji;
	private String xianshiqi;
	private String jianpan;
	private String shubiao;
	public String getZhuji() {
		return zhuji;
	}
	public void setZhuji(String zhuji) {
		this.zhuji = zhuji;
	}
	public String getXianshiqi() {
		return xianshiqi;
	}
	public void setXianshiqi(String xianshiqi) {
		this.xianshiqi = xianshiqi;
	}
	public String getJianpan() {
		return jianpan;
	}
	public void setJianpan(String jianpan) {
		this.jianpan = jianpan;
	}
	public String getShubiao() {
		return shubiao;
	}
	public void setShubiao(String shubiao) {
		this.shubiao = shubiao;
	}
	
	
	public void info()
	{
		System.err.println(String.format("我是MAC机我的配置如下" +
				",主机:%s  显示器: %s 键盘:%s 鼠标: %s", zhuji,xianshiqi,jianpan,shubiao));
	}
}


public class getcomputer {

	public static void main(String[] args) {
		ConcreteBuilder builder= new ConcreteBuilder();//创建一个建造工具
		Director director = new Director(builder);//创建(建造者)并把建造工具拿给建造者
		director.construct();//建造者利用工具进行建造
		computer c = builder.getcomputer();////取得产品
		c.info();
	}
}
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics