第0章:簡介
簡單工廠模式定義:提供一個創建對象實例的功能,而無需關心其具體實現。被創建實例的類型可以是接口、抽象類或具體類
簡單工廠模式的實質:選擇實現
參考:http://chjavach.iteye.com/blog/800325 ,研磨設計模式(書籍),大話設計模式(書籍)
模式圖:
待補充
第1章:實踐
(1)接口類(Intf.java)
package com.mcc.core.designPattern.build.simpleFactory; /** * 接口 * * @author <a href="mailto:[email protected]">menergy</a> * DateTime: 14-3-9 上午12:24 */ public interface Intf { public void someMethod(); } |
(2)實現類A(IntfImplA.java)
package com.mcc.core.designPattern.build.simpleFactory; /** * 實現類A * * @author <a href="mailto:[email protected]">menergy</a> * DateTime: 14-3-9 上午12:28 */ public class IntfImplA implements Intf { @Override public void someMethod() { System.out.println("實現類A"); } } |
(3)實現類B(IntfImplB.java)
package com.mcc.core.designPattern.build.simpleFactory; /** * 實現類B * * @author <a href="mailto:[email protected]">menergy</a> * DateTime: 14-3-9 上午12:28 */ public class IntfImplB implements Intf { @Override public void someMethod() { System.out.println("實現類B"); } } |
(4)簡單工廠類(Factory.java)
package com.mcc.core.designPattern.build.simpleFactory; /** * 簡單工廠 * * 簡單工廠模式定義:提供一個創建對象實例的功能,而無需關心其具體實現。被創建實例的類型可以是接口、抽象類或具體類 * 簡單工廠模式的實質:選擇實現 * * @author <a href="mailto:[email protected]">menergy</a> * DateTime: 14-3-9 上午12:18 */ public class Factory { /** * 創建對象的方法 * @param implType 實體標識 * @return */ public static Intf create(int implType){ Intf intf = null; if(implType == 1){ intf = new IntfImplA(); }else if(implType == 2){ intf = new IntfImplB(); } return intf; } } |
(5)客戶端測試類(Client.java)
package com.mcc.core.designPattern.build.simpleFactory; /** * 客戶端測試 * * @author <a href="mailto:[email protected]">menergy</a> * DateTime: 14-3-9 上午12:39 */ public class Client { public static void main(String args[]){ //工廠生產A對象 Intf intfA = Factory.create(1); intfA.someMethod(); //工廠生產B對象 Intf intfB = Factory.create(2); intfB.someMethod(); } } |