java設計模式(創建型)之簡單工廠模式

第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();
    }
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章