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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## **模式的定義** 裝飾器模式,也成為包裝模式,顧名思義,就是對已經存在的某些類進行裝飾,以此來擴展一些功能。 ## **代碼實現** 需求:在普通人類的基礎上,增加超人的能力。 1. 定義一個Human接口 ``` public interface Human { // 跑步 void run(); } ``` 2. 實現Man ``` public class Man implements Human { @Override public void run() { System.out.println("人會跑步"); } } ``` 3. 創建Man裝飾器對他進行裝飾,添加可以飛翔的超能力 ``` public class ManDecorator implements Human { private Human human; public ManDecorator(Human human) { this.human = human; } private void fly() { System.out.println("可以飛.."); } @Override public void run() { human.run(); fly(); } } ``` 4. 創建SuperMan裝飾器對他再進行裝飾,添加可以定速巡航的超能力 ``` public class SuperManDecorator implements Human { private Human human; public SuperManDecorator(Human human) { this.human = human; } private void other() { System.out.println("可以定速巡航"); } @Override public void run() { human.run(); other(); } } ``` 5. 客戶端調用 ``` public static void main(String[] args) { Human superMan = new ManDecorator(new Man()); superMan.run(); Human ssuperMan = new SuperManDecorator(superMan); ssuperMan.run(); } ``` 步驟3、4的代碼幾乎是一致的,那我們可以繼續抽象代碼 1. 定義裝飾的抽象類 ``` public abstract class AbstractDecorator implements Human { private Human human; public AbstractDecorator(Human human) { this.human = human; } @Override public void run() { human.run(); } } ``` 2. 修改Man裝飾器代碼 ``` public class ManDecorator extends AbstractDecorator { public ManDecorator(Human human) { super(human); } private void fly() { System.out.println("可以飛.."); } @Override public void run() { super.run(); fly(); } } ```
                  <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>

                              哎呀哎呀视频在线观看