1. 程式人生 > >Java工廠模式之簡單工廠模式

Java工廠模式之簡單工廠模式

首先定義三個類整合基類, 每個子類都重寫了父類的實現方法。
//這個在android原始碼中非常常見,比如圖片資源分為好幾種這裡寫圖片描述

//定義頂級父類
public abstract class Person {
    abstract void  belongMethod();
}
//定義子類
public class Teacher extends Person {

    @Override
    void belongMethod() {
        // 自定義方法
        System.out.println("老師會教書");
    }
}
    public
static void main(String[] args) { //一般情況先new 然後呼叫,程式碼量多 Teacher teacher = new Teacher(); teacher.belongMethod(); Saler saler = new Saler(); saler.belongMethod(); // 下面是簡單工廠模式第一種,比上面程式碼精簡很多 SingleFactory.creat(2).belongMethod();

由上面可以看出,工廠模式更加精簡

public class SingleFactory {

    public static Person creat(int type) {
        switch (type) {
        case 1:
            return new Teacher();
        case 2:
            return new Saler();
        default:
            return new DefaultPerson();
        }
    }
}

上述工廠程式碼繼續優化精簡如下

//通過反射來建立物件,更為精簡,比第一種方式更易於拓展
public static <T extends Person> T creat(Class<T> claz){ Person person=null; try { person=(Person) Class.forName(claz.getName()).newInstance(); } catch (Exception e) { e.printStackTrace(); } return (T) person;
//client呼叫的時候
SingleFactory.creat(Teacher.class).belongMethod();