工厂的一个车间已经不能满足需要了,所以我们要为生产每一种车型建造一个车间,这样我们就有生产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。
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。