<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                一點點從基礎做起,23中設計模式一天看一個 首先學習了一個UML,但是沒有能下到RationalRose,想去官網上下載,但是似乎收費,索性就用手頭上的StartUML,其實就是一個工具,能實現就行了 SimpleFactory——簡單設計模式原理圖 ![](https://box.kancloud.cn/2016-07-12_578455cc584f8.png) ![](https://box.kancloud.cn/2016-07-12_578455cc6da29.png) ~~~ package com.designpattern.simplefactory; public class Client { public static void main(String[] args) { Animal tiger = SimpleFactory.createAnimal("Tiger"); tiger.eat(); Animal dolphin = SimpleFactory.createAnimal("Dolphin"); dolphin.eat(); } } ~~~ ~~~ package com.designpattern.simplefactory; public class SimpleFactory { public static Animal createAnimal(String animalName) { if ("Tiger".equals(animalName)) { return new Tiger(); } else if ("Dolphin".equals(animalName)) { return new Dolphin(); } return null; } } ~~~ ~~~ package com.designpattern.simplefactory; public interface Animal { public void eat(); } ~~~ ~~~ package com.designpattern.simplefactory; public class Dolphin implements Animal { @Override public void eat() { System.out.println("Dolphin is eating"); } public void swim() { System.out.println("Dolphin is swimming"); } } ~~~ ~~~ package com.designpattern.simplefactory; public class Tiger implements Animal { @Override public void eat() { System.out.println("Tiger is eating"); } public void run() { System.out.println("Tiger is running"); } } ~~~ 簡單工廠設計模式中,客戶端不在負責對象的創建,而是把這個任務丟給了具體的工廠類,客戶端置負責對對象的簡單的調用,從而明確了各個類的職責。 由于簡單的工廠模式使用靜態的方法來創建對象,這就導致了靜態方法無法被繼承。另一方面,這個工廠類負責所有對象的創建,這回導致雖然具體的產品的不斷增多,可能客戶端對于某些產品的創建方式會有不同的要求,這樣的話,就要不斷的修改工廠類,增加了相應的判斷邏輯,不利于后期的維護。 其實從這個簡單的工廠模式的原理可以看出,原來在客戶端要做的創建和初始化工作都被移到了工廠里去做,這樣做,雖然是把創建對象和初始化工作于客戶端分離了,實現了這部分的責任分配,但所有對象創建和初始化的工作還是都集中在了這個具體的工廠類里面,這樣如果要創建的對象很多,這個工廠將會非常龐大,仍然不利于后期代碼的維護。因此簡單工廠模式只是使用與要創建的對象比較少和簡單的時候,因此這個設計模式看一下過去就行了,也沒有必要再這個上面下多大功夫,畢竟還是比較簡單的東西,如果多了怎么辦呢,這樣就到了期待的下一個設計模式Factory Method
                  <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>

                              哎呀哎呀视频在线观看