<dl id="opymh"></dl>

<div id="opymh"></div>
      <div id="opymh"><tr id="opymh"></tr></div>

        <em id="opymh"><ins id="opymh"><mark id="opymh"></mark></ins></em><sup id="opymh"><menu id="opymh"></menu></sup>

        <em id="opymh"></em>

        <em id="opymh"><ol id="opymh"></ol></em>

              頻道欄目
              首頁 > 程序開發 > 軟件開發 > 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技術學習網站

              极速飞艇好假
              <dl id="opymh"></dl>

              <div id="opymh"></div>
                  <div id="opymh"><tr id="opymh"></tr></div>

                    <em id="opymh"><ins id="opymh"><mark id="opymh"></mark></ins></em><sup id="opymh"><menu id="opymh"></menu></sup>

                    <em id="opymh"></em>

                    <em id="opymh"><ol id="opymh"></ol></em>

                          <dl id="opymh"></dl>

                          <div id="opymh"></div>
                              <div id="opymh"><tr id="opymh"></tr></div>

                                <em id="opymh"><ins id="opymh"><mark id="opymh"></mark></ins></em><sup id="opymh"><menu id="opymh"></menu></sup>

                                <em id="opymh"></em>

                                <em id="opymh"><ol id="opymh"></ol></em>