简单工厂模式

2018-06-26  本文已影响0人  MrL槑槑

要点

public interface Car {

    void run();

}
public class Bwd implements Car {
    @Override
    public void run() {
        System.out.println("比亚迪在跑");
    }
}
public class Audi implements Car {
    @Override
    public void run() {
        System.out.println("奥迪在跑");
    }
}
/**
 * 没有工厂模式的情况
 */
public class Client1 {

    public static void main(String[] args) {
        Car bwd = new Bwd();
        Car audi = new Audi();

        bwd.run();
        audi.run();
    }
}
没有使用工厂模式的情况
可以看出client端(调用端),是同需要知道接口、具体实现类,对于调用方来说比较复杂。



/**
 * 增加工厂类
 */
public class CarFactory {

    public static Car createCar (String type){
        if ("bwd".equals(type)){
            return new Bwd();
        } else if ("audi".equals(type)){
            return new Audi();
        } else {
            return null;
        }
    }
}
/**
 * 简单工厂模式下
 */
public class Client2 {
    public static void main(String[] args) {
        Car bwd = CarFactory.createCar("bwd");
        Car audi = CarFactory.createCar("audi");

        bwd.run();
        audi.run();
    }
}
增加工厂类

对于调用放来说,只需要知道接口、工厂类即可。通过传入不同type,获取不同Car实例。

上一篇 下一篇

猜你喜欢

热点阅读