簡單工廠和工廠模式

9527發表於2012-12-17
簡單工廠模式的核心是一個工廠方法,但在工廠方法裡還需要if,switch來判斷生成哪個物件,破壞了開閉原則.
Base base = factor.Create("A");
Base base = factor.Create("B");

工廠模式,抽象出一個抽象工廠類,把建立物件的方法放到工廠的子類裡,由客戶來選擇哪家工廠來生成物件,需要增加物件時,只需要增加一個工廠子類就行,符合開閉原則.
Base base = factorA.Create();
Base base = factorB.Create();

但是,由客戶來選擇工廠來生成物件,和原來直接new一個物件有什麼好處呢?
Base base = new A();
Base base = new B();

如果我把new A();和new A();配置到檔案裡,再透過反射等技術,生成所需要的物件,也沒必要再加一層子工廠類啊?

相關文章