設計模式之二 工廠模式

工廠模式的定義:
定義一個用於建立對象的接口,讓子類決定實例化哪個類。工廠方法決定一個類的實例化延遲到其子類。ide

類圖以下:spa

image

通用的代碼以下:code

//抽象產品類
public abstract class Product {
    // 產品通用的方法.....
    public void method1(){
        
    }
    
    //抽象方法
    public abstract void method2();

}
//--------------------------------------產品類------------------------------------------------
//具體類 1
public class ConcreteProduct1 extends Product {

    
    @Override
    public void method2() {
        // 處理具體產品1的方法

    }

}

//具體產品類2
public class ConcreteProduct2 extends Product {

    @Override
    public void method2() {
        //具體產品2的方法.....

    }

}

//-----------------------------------建立類------------------------------------------
//抽象的建立類
public abstract class Creator {
    //經過反射建立具體的產品類...
    public abstract <T extends Product> T  createProduct(Class<T> c);
}

//具體的抽象類
public class ConcreteCreator extends Creator {


    @Override
    public <T extends Product> T createProduct(Class<T> c) {
        //產品類....
        Product product = null;
        
        if(product == null){
            try {
                product = (Product) Class.forName(c.getName()).newInstance();
            }
            catch (Exception  e) {
                e.printStackTrace();
            }
        }
        
        //返回.....
        return (T)product;
        
    }

}

//---------------------------------------------------------Client 類--------------------------------------------------------------------------
public class Client {

    /** 
     * @Title: main 
     * @Description: 工廠類的Client
     * @param @param args    設定文件 
     * @return void    返回類型 
     * @throws 
     */
    public static void main(String[] args) {
        //工廠建立類
        Creator  creator = new ConcreteCreator();
        //生成具體產品類1
        Product  product = creator.createProduct(ConcreteProduct1.class);
        
        //繼續業務處理

    }

}

 

 

簡單工廠類對象

把類圖去掉抽象類 creator類,將ConcreteCreator 方法修改成靜態便可。blog

相關文章
相關標籤/搜索