您的位置:首页 > 产品设计 > UI/UE

设计模式之建造者模式(Builder)

2013-10-03 21:20 239 查看
前面介绍过工厂模式了,如果我们需要一辆车并不需要知道车是如何、从哪个工厂里生产出来的。今天介绍的建造者模式就要说明一下车子是如何制造的。

一辆汽车需要不同的原件进行组装而成的。

class Tyre{

public void createTyre(){

System.out.println("生产了一个轮胎");

}

}

class Seat{

public void createSeat(){

System.out.println("生产了一个座椅");

}

}

class Car{

Car(Tyre t,Seat s){

System.out.println("生产了一辆汽车!");

}

}

工厂里的工人们知道如何制造车子的轮胎、方向盘、底盘、发动机等等。。。

//工人懂得制造部件和汽车,但是不知道需要什么零件,先造那个、后造哪个

interface AbstractWorker{

public Tyre createTyre();

public Seat createSeat();

public Car getCar();

}

class Worker implements AbstractWorker{

private Tyre tyre;

private Seat seat;

public Seat createSeat() {

return seat = new Seat();

}

public Tyre createTyre() {

// TODO Auto-generated method stub

return tyre = new Tyre();

}

public Car getCar() {

// TODO Auto-generated method stub

if(tyre!=null||seat!=null){

return new Car(tyre,seat);

}

System.out.println("没有设计师,造不出啊!");

return null;

}

但是作为高级工人,他们并不知道应该先做那个后做哪个,他们需要一位设计师,指挥他们。虽然设计师并不会制造零件。。(知识改变命运啊)

//设计师指导工人制造汽车

class Designer{

private Worker worker;

Designer(Worker worker){

this.worker = worker;

}

void createCar(){

worker.createSeat();

worker.createSeat();

}

}

执行主函数,就可以获得自己心仪的汽车啦!

public class BuilderPattern {

public static void main(String[] args){

Worker woker = new Worker();

Designer d = new Designer(woker);

d.createCar();

woker.getCar();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: