码迷,mamicode.com
首页 > 其他好文 > 详细

建造者模式

时间:2015-05-19 10:52:05      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:建造者模式

建造者模式能够将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。

建造者与工厂模式相似,与抽象工厂的区别是:建造者模式里,有个指导者,由指导者来管理建造者,用户与指导者相互联系,指导者联系建造者,最终得到产品。即建造者模式可以强制实行一种分步骤进行的建造过程。

更通俗点说,工厂模式更多的是注重一个零件的制造,而建造者模式创造出来的是可以组合的产品。

      以下例子是根据汽车部件组装问题为背景

//建造者

public interface Builder{

void buildPartA();//构造车头

void buildPartB();//构造车身

void buildPartC();//构造车尾

public Product getResult()//获取车

}

//建造者工具

public class CarConcreateBuilder implments Builder{

Car  car=new Car();


public void buildPartA(){

//具体构建A的代码;

car.setHead("车头");

System.out.println("构造车头");

}

public void buildPartB(){

//具体构建B的代码;

car.setHead("车身");

System.out.println("构造车身");

}

public void buildPartC(){

//具体构建C的代码;

car.setHead("车尾");

System.out.println("构造车尾");

}

public Product getResult(){

//返回最后组装的结果

return car;

}

}

//指导者

public class Director{

private Builder builder;

public Director(Builder builder){

this.builder=builder;

public void construct(){

builder.buildPartA();

builder.buildPartB();

builder.buildPartC();

}

}

//产品

public class Car{

//车头

private String head;

//车身

private String body;

//车尾

private String tail;

//set()-get()方法

---------------------客户端------------------------------------------------------

public class  Client{

public static void main(String args[]){

//实例一个建造者

Builder  carConcreateBuilder=new  CarConcreateBuilder ();

//实例一个指导者

Director director =new Director(carConcreateBuilder);

// 指导Car类生产

director.construct();

//获得产品

Car car =carConcreateBuilder.getResult();


}

}

----------------一起学习,一起进步-------------------------------------------------------


建造者模式

标签:建造者模式

原文地址:http://blog.csdn.net/u012312373/article/details/45826905

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!