设计模式-简单工厂模式

118 阅读1分钟

简单工厂模式

在开发过程中我们经常会碰到一种状况就是,需要根据不同的属性来创建不同的对象 对象类型少的时候我们可以用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

欢迎大家关注我的公众号

image.png