<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國際加速解決方案。 廣告
                ### 建造者模式 將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。(摘抄) 通俗來說就是你只需要指定創建的類型是什么,創建的過程不變,就可以得到不同的表示對象。 使用建造者模式首先定義一個產品類,然后通過產品類知道需要具體建造哪些部分,然后創建建造者類,定義好創建的抽象方法,再創建具體建造者類,實現具體的內容,最后創建一個指揮者類,來指揮建造過程. ~~~ import javax.naming.directory.DirContext; class Product { a,b,c; public void show() { System.out.println(a+b+c); } } abstract class Builder { public abstract void BuilderA(); public abstract void BuilderB(); public abstract void BuilderC(); public abstract Product getProduct(); } class ConcreteBuilder1 extends Builder { private Product product = new Product(); @Override public void BuilderA() { product.a = 功能3; } @Override public void BuilderB() { // TODO Auto-generated method stub product.b = 功能4; } @Override public void BuilderC() { // TODO Auto-generated method stub product.c = 功能5; } @Override public Product getProduct() { // TODO Auto-generated method stub return product; } } class ConcreteBuilder2 extends Builder { private Product product = new Product(); @Override public void BuilderA() { // TODO Auto-generated method stub product.a = 功能6; } @Override public void BuilderB() { // TODO Auto-generated method stub product.b = 功能7; } @Override public void BuilderC() { // TODO Auto-generated method stub product.c = 功能8; } @Override public Product getProduct() { // TODO Auto-generated method stub return product; } } class Director { public void Construct(Builder builder) { builder.BuilderA(); builder.BuilderB(); builder.BuilderC(); } } class Client { public static void main() { Director director = new Director(); ConcreteBuilder1 b1 = new ConcreteBuilder1(); ConcreteBuilder2 b2 = new ConcreteBuilder2(); director.Construct(b1); Product p1 = b1.getProduct(); director.Construct(b1); Product p2 = b2.getProduct(); } } ~~~ 建造者模式把創建對象時裝配的代碼隱藏起來了,當創建新的對象的時候不需要了解創建的過程,只需要知道需要創建哪一種對象即可。 建造者模式創建的對象一般都是內部結構的建造順序通常時穩定的,但對象內部的構建通常面臨者許多變化。 同時用建造者模式創建復雜的對象,在給其添加功能時可以節約很多代碼,相當于把很多重復的代碼寫到了具體的創建類中,同時需要增加具有新功能的對象的時候只需要再多寫一個具體建造者類就可以了。 ### 總結 建造者模式是在當創建復雜對象的算法應該獨立于該對象的組成部分以及它們的裝配方式時適用的模式。(摘抄) 當使用建造建議靈活使用,不要呆板的去套用這個規則,例如這個對象在整個程序中都只需要創建一次,那就沒有必要再去把它抽象成這種建造者模式了。
                  <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>

                              哎呀哎呀视频在线观看