<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 工廠三兄弟之簡單工廠模式(三) 3 完整解決方案 為了將Chart類的職責分離,同時將Chart對象的創建和使用分離,Sunny軟件公司開發人員決定使用簡單工廠模式對圖表庫進行重構,重構后的結構如圖2所示: ![](http://img.blog.csdn.net/20130711144554265?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTG92ZUxpb24=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 圖2 圖表庫結構圖 在圖2中,Chart接口充當抽象產品類,其子類HistogramChart、PieChart和LineChart充當具體產品類,ChartFactory充當工廠類。完整代碼如下所示: ``` //抽象圖表接口:抽象產品類 interface Chart { public void display(); } //柱狀圖類:具體產品類 class HistogramChart implements Chart { public HistogramChart() { System.out.println("創建柱狀圖!"); } public void display() { System.out.println("顯示柱狀圖!"); } } //餅狀圖類:具體產品類 class PieChart implements Chart { public PieChart() { System.out.println("創建餅狀圖!"); } public void display() { System.out.println("顯示餅狀圖!"); } } //折線圖類:具體產品類 class LineChart implements Chart { public LineChart() { System.out.println("創建折線圖!"); } public void display() { System.out.println("顯示折線圖!"); } } //圖表工廠類:工廠類 class ChartFactory { //靜態工廠方法 public static Chart getChart(String type) { Chart chart = null; if (type.equalsIgnoreCase("histogram")) { chart = new HistogramChart(); System.out.println("初始化設置柱狀圖!"); } else if (type.equalsIgnoreCase("pie")) { chart = new PieChart(); System.out.println("初始化設置餅狀圖!"); } else if (type.equalsIgnoreCase("line")) { chart = new LineChart(); System.out.println("初始化設置折線圖!"); } return chart; } } ``` 編寫如下客戶端測試代碼: ``` class Client { public static void main(String args[]) { Chart chart; chart = ChartFactory.getChart("histogram"); //通過靜態工廠方法創建產品 chart.display(); } } ``` 編譯并運行程序,輸出結果如下: ``` 創建柱狀圖! 初始化設置柱狀圖! 顯示柱狀圖! ``` 在客戶端測試類中,我們使用工廠類的靜態工廠方法創建產品對象,如果需要更換產品,只需修改靜態工廠方法中的參數即可,例如將柱狀圖改為餅狀圖,只需將代碼: ``` chart = ChartFactory.getChart("histogram"); ``` 改為: ``` chart = ChartFactory.getChart("pie"); ``` 編譯并運行程序,輸出結果如下: ``` 創建餅狀圖! 初始化設置餅狀圖! 顯示餅狀圖! ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看