頻道欄目
首頁 > 程序開發 > 軟件開發 > Java > 正文
設計模式學習之工廠模式實例解析
2018-07-27 13:52:28         來源:咸魚塘  
收藏   我要投稿

簡介

工廠模式是我們最常用的實例化對象模式了,是用工廠方法代替new操作的一種模式。著名的Jive論壇 ,就大量使用了工廠模式,工廠模式在Java程序系統可以說是隨處可見。因為工廠模式就相當于創建實例對象的new,我們經常要根據類Class生成實例對象,如A a=new A() 工廠模式也是用來創建實例對象的,所以以后new時就要多個心眼,是否可以考慮使用工廠模式,雖然這樣做,可能多做一些工作,但會給你系統帶來更大的可擴展性和盡量少的修改量。

工廠模式和簡單工廠的區別

我們在簡單工廠中可以發現,在我們需要添加一個新的工廠的時候需要修改原來的選擇分支,這違背了類的開放性和封閉性原則,所以對簡單工廠進一步抽象可得工廠模式。

簡單工廠鏈接

工廠模式模塊(Demo:計算器)

運算類

public abstract class Operation {
    public double number_A = 0;
    public double number_B = 0;
    public abstract double GetResult();
}
class OperationAdd extends Operation{

    @Override
    public double GetResult() {
        return number_A+number_B;
    }

}
class OperationSub extends Operation{

    @Override
    public double GetResult() {
        return number_A-number_B;
    }

}
class OperationMul extends Operation{

    @Override
    public double GetResult() {
        return number_A*number_B;
    }

}
class OperationDiv extends Operation{

    @Override
    public double GetResult() {
        if(number_B==0)
        {
            System.out.println("被除數不能為0");
            return -1;
        }
        return number_A/number_B;
    }

}

工廠接口

public interface Factory {
    public Operation GetOperation();
}

工廠實現

class OperationAddFactory implements Factory{

    @Override
    public Operation GetOperation() {
        return new OperationAdd();
    }
}

class OperationDivFactory implements Factory{

    @Override
    public Operation GetOperation() {
        return new OperationDiv();
    }
}

class OperationMulFactory implements Factory{

    @Override
    public Operation GetOperation() {
        return new OperationMul();
    }
}

class OperationSubFactory implements Factory{

    @Override
    public Operation GetOperation() {
        return new OperationSub();
    }
}

使用方法

public class Main {
    public static void main(String[] args) {
        OperationAddFactory operationAddFactory = new OperationAddFactory();
        Operation operation = operationAddFactory.GetOperation();
        operation.number_A=2;
        operation.number_B=1;
        System.out.println(operation.GetResult());
    }
}

可以看出其與簡單工廠的區別就在于取消了分支,而是選用了新創建一個類,這種方法雖然加大了開發量,但是提高了程序的可維護性。

這里寫圖片描述

點擊復制鏈接 與好友分享!回本站首頁
上一篇:java線程方法之join簡單總結(代碼實例)
下一篇:java關于Annotation“注解”的實例解析
相關文章
圖文推薦
文章
推薦
點擊排行

關于我們 | 聯系我們 | 廣告服務 | 投資合作 | 版權申明 | 在線幫助 | 網站地圖 | 作品發布 | Vip技術培訓 | 舉報中心

版權所有: 紅黑聯盟--致力于做實用的IT技術學習網站

重庆快乐十分开奖记录