工厂方法模式之夏利车间

来源:互联网 发布:pano2vr软件 编辑:程序博客网 时间:2024/06/10 07:38
工厂的一个车间已经不能满足需要了,所以我们要为生产每一种车型建造一个车间,这样我们就有生产QQ的QQ车间,生产夏利的夏利车间等等
public class Factory{  //总工厂
public Car makecar(){}
}
public class QQFactory extends Factory{  //生产QQ的车间
public Car makecar(){return new QQCar();}
}

public class XLFactory extends Factory{  //生产夏利的车间
public Car makecar(){return new XLCar();}
}
... ...
客户就可以到固定的车间去购买自己喜欢的小汽车了。
Factory factory1=new QQFactory();//客户要QQ车
Car car1=factory1.makecar();
... ...

或者我们可以这样这样的形式实现工厂方法模式

public class Factory{  //总工厂
public Factory gofactory(String cartype){  //去各生产车间
     if(cartype=="QQ"){return new QQFactory();}
     else if(cartype=="夏利"){return new XLFactory();}
      }
}
public class QQFactory extends Factory{   //生产QQ的车间
public Car makecar(){return new QQCar();}
}

public class XLFactory extends Factory{   //生产夏利的车间
public Car makecar(){return new XLCar();}
}
... ...
客户就可以到总工厂去购买自己喜欢的小汽车了。
Factory factory=new Factory();
factory1=factory.gofactory("QQ");//客户要QQ车
Car car1=factory1.makecar();
... ...
总工厂子类——各个生产车间,也可以作为简单工厂来看,比如生产QQ的车间可以生产不同型号的QQ。

 
原创粉丝点击