简而不凡的工厂模式
我创建一个Car接口,并让两个类去实现这个接口
public interface Car {
void sayName();
}
public class BenchCar implements Car {
@Override
public void sayName() {
System.out.println("梅赛德斯奔驰");
}
}
public class WulingCar implements Car {
@Override
public void sayName() {
System.out.println("五菱宏光");
}
}
我创建一个工厂让他为我生产车子对象
public class CarFactory {
public static Car getCar(String carName) {
if ("bench".equals(carName) {
return new Bench();
} else if ("wuling".equals(carName)) {
return new WulingCar();
} else {
return null;
}
}
}
这样我们的对象都可以通过工厂获得
public class Test {
public static void main(String[] args) {
Car bench = CarFactory.getCar("bench");
Car wuling = CarFactory.getCar("wuling");
bench.sayName();
wuling.sayName();
}
}
但这样工厂里的代码好像揉在一起,如果我要增加一个“宝马”类就要在那一团代码里修改,而且车子的属性多了就更麻烦了。于是,我可以写多个方法来把创建每一种车对象的代码分开:
public class CarFactory1 {
public static BenchCar getBenchCar() {
return new BenchCar();
}
public static WulingCar getWulingCar() {
return new WulingCar();
}
}
这样就可以每个方法维护一个类。