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

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

一辆汽车需要不同的原件进行组装而成的。
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();
 }
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值