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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                橋接模式(Bridge):把事物和其具體實現分開(抽象化與實現化解耦),使他們可以各自獨立的變化。假設你的電腦是雙系統(WinXP、Win7),而且都安裝了mysql、oracle、sqlserver、DB2這4種數據庫,那么你有2*4種選擇去連接數據庫。按平常的寫法,咱要寫2*4個類,但是使用了橋接模式,你只需寫2+4個類,可以看出橋接模式其實就是一種將N*M轉化成N+M組合的思想。 ##一、uml建模: ![](https://box.kancloud.cn/2016-02-19_56c7196eb9582.jpg) ##二、代碼實現 ~~~ /** * 橋接模式(Bridge): 把事物和其具體實現分開(抽象化與實現化解耦),使他們可以各自獨立的變化。 * * 假設你的電腦是雙系統(WinXP、Win7),而且都安裝了mysql、oracle、sqlserver、DB2這4種數據庫 * * 那么你有2*4種選擇去連接數據庫。按平常的寫法,咱要寫2*4個類,但是使用了橋接模式,你只需寫2+4個類 * * 可以看出橋接模式其實就是一種將N*M轉化成N+M組合的思想。 */ interface Driver { public void method(); } class MysqlDriver implements Driver { @Override public void method() { System.out.println("use mysql driver to connection db...\n"); } } class OracleDriver implements Driver { @Override public void method() { System.out.println("use oracle driver to connection db...\n"); } } /** * 這里你還可以寫SqlserverDriver、DB2Driver... */ abstract class Computer { public abstract void connection(Driver driver); } class WinXP extends Computer { @Override public void connection(Driver driver) { System.out.println("WinXP Computer"); driver.method(); } } class Win7 extends Computer { @Override public void connection(Driver driver) { System.out.println("Win7 Computer"); driver.method(); } } /** * 客戶端測試類 * * @author Leo */ public class Test { public static void main(String[] args) { /** * 第一種組合:winXP使用mysql驅動連接數據庫 */ Computer winxp = new WinXP(); winxp.connection(new MysqlDriver()); /** * 第二種組合:win7使用mysql驅動連接數據庫 */ Computer win7 = new Win7(); win7.connection(new MysqlDriver()); /** * 第三種組合:winXP使用oracle驅動連接數據庫 */ Computer cwinxp = new WinXP(); cwinxp.connection(new OracleDriver()); /** * 第四種組合:winXP使用oracle驅動連接數據庫 */ Computer cwin7 = new Win7(); cwin7.connection(new OracleDriver()); } } ~~~ ##三、總結 橋接的核心思想是:將抽象化與實現化解耦,使得二者可以獨立變化。
                  <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>

                              哎呀哎呀视频在线观看