简单工厂模式
在开发过程中我们经常会碰到一种状况就是,需要根据不同的属性来创建不同的对象 对象类型少的时候我们可以用if...else... 但是当类型越来越多,else if 越来越多的时候,代码会越来越冗杂,可读性和可维护性越来越差,这个时候可以使用工厂模式,它将创建的动作交给了另外的类,业务代码只需使用简单的参数调用此类便可得到想要的对象
示例
public interface Car {
String printBrand();
}
public class Benz implements Car{
@Override
public String printBrand() {
return "I am Benz";
}
}
public class Wuling implements Car{
@Override
public String printBrand() {
return "I am Wuling";
}
}
public enum CarEnum {
BENZ("Benz"),
WULING("Wuling");
private String name;
CarEnum(String name){
this.name = name;
}
}
public class CarFatory {
public static Car getCar(CarEnum carEnum) throws Exception {
switch (carEnum){
case BENZ:
return new Benz();
case WULING:
return new Wuling();
default:
throw new Exception();
}
}
}
public class Test {
public static void main(String[] args) throws Exception {
Car myBenz = CarFatory.getCar(CarEnum.BENZ);
System.out.println(myBenz.printBrand());
Car myWuling = CarFatory.getCar(CarEnum.WULING);
System.out.println(myWuling.printBrand());
}
}
print:
I am Benz
I am Wuling