题目
用工厂模式设计汽车生产系统。
代码如下
public interface Car {
void showTheBrand();
}
public class BMW implements Car{
@Override
public void showTheBrand() {
System.out.println("这是一辆【宝马】汽车");
}
}
public class Benz implements Car{
@Override
public void showTheBrand() {
System.out.println("这是一辆【奔驰】汽车");
}
}
public interface CarFactory {
Car buildACar();
}
public class BMWFactory implements CarFactory{
@Override
public Car buildACar() {
System.out.println("这里是宝马工厂,我们只生产宝马汽车");
return new BMW();
}
}
public class BenzFactory implements CarFactory{
@Override
public Car buildACar() {
System.out.println("这里是奔驰工厂,我们只生产奔驰汽车");
return new Benz();
}
}
public class FactoryTest {
public static void main(String[] args) {
BMWFactory carFactory = new BMWFactory();
Car myCar = carFactory.buildACar();
myCar.showTheBrand();
}
}
运行结果
优点
相比简单工厂,利于扩展和维护。
比如当新增一种车时,只需要对应创建具体产品类和负责生产新品种车的具体工厂即可。