工厂模式
/**
* 所有的车辆需要实现的车辆中心 */
public interface VehicleCenter {
String Vehicle();
}
public class ADVehicle implements VehicleCenter {
@Override
public String Vehicle() {
return "喜提奥迪车辆";
}
}
public class BCVehicle implements VehicleCenter {
@Override
public String Vehicle() {
return "喜提奔驰车辆";
}
}
public class BMVehicle implements VehicleCenter {
@Override
public String Vehicle() {
return "喜提宝马车辆";
}
}
定义一个工厂方法
/**
* 车辆工厂
*/
public class VehicleFactory {
public VehicleCenter getVehicle(String type) {
if (type == null) {
return null;
}
if ("AD".equals(type)) {
return new ADVehicle();
} else if ("BC".equals(type)) {
return new BCVehicle();
} else if ("BM".equals(type)) {
return new BMVehicle();
}
return null;
}
}
测试类
public class TextVehicle {
public static void main(String[] args) {
VehicleFactory factory = new VehicleFactory();
//买一辆奥迪车
VehicleCenter vehicle = factory.getVehicle("AD");
System.out.println(vehicle.Vehicle());
}
}
输出:
喜提奥迪车辆
Process finished with exit code 0
工厂方法 优点:扩展性高 缺点:增加一个车辆就会增加一个类和实现工厂