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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 概述 前輩們把解決問題的方案總結出一個套路.代理設計模式是基于接口的,把需要定義的方法都定義在接口中. ## 靜態代理設計模式 ~~~ public class Boy { private String name = "jack"; private Girl girl; //這里可以使用接口,避免換女友需要更改這里. 開閉原則 public Boy(String name) { this.name = name; } public void setGirl(Girl g) { this.girl = g; } public void hungry() { System.out.println("餓了"); girl.cook(); } } ~~~ ~~~ public class Girl { private String name; public Girl(String name) { this.name = name; } public void cook() { System.out.println("女友做飯"); } } ~~~ 調用 ~~~ Boy b = new Boy("jack"); Girl g = new Girl("milan"); b.setGirl(g); b.hungry(); ~~~ ## 更復雜的靜態代理 ~~~ public interface ComputerInterface { //賣電腦 public abstract String buyComputer(); //免費維修 public abstract void repair(); } ~~~ ~~~ //被代理類 public class ComputerCompany implements ComputerInterface { @Override public String buyComputer() { return "Y450,3888元"; } @Override public void repair() { System.out.println("免費維修"); } } ~~~ ~~~ //代理類 public class ProxyPerson implements ComputerInterface { //被代理對象 private ComputerInterface lenovo; public ProxyPerson(ComputerInterface lenovo) { this.lenovo = lenovo; } @Override public String buyComputer() { return "鼠標,鍵盤,電腦包,U盤" + lenovo.buyComputer(); } @Override public void repair() { System.out.println("需要運費"); lenovo.repair(); System.out.println("再給運費"); } } ~~~ ~~~ public static void main(String[] args) { //被代理公司 ComputerCompany lenovo = new ComputerCompany(); //代理對象 ProxyPerson pp = new ProxyPerson(lenovo); //買電腦 String s = pp.buyComputer(); System.out.println(s); pp.repair(); } ~~~
                  <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>

                              哎呀哎呀视频在线观看