java設計模式連載(7) –橋接模式

來源:互聯網
上載者:User

 

名稱 : Bridge   橋接模式    ( 參考Spring利用的橋接模式)

 

意圖:將抽象部分與它的實現部分分離,使它們都可以獨立地變化。

 

 

適用性:

  •  你不希望在抽象和它的實現部分之間有一個固定的綁定關係。例如這種情況可能是因為,在程式運行時刻實現部分應可以被選擇或者切換。
  • 類的抽象以及它的實現都應該可以通過產生子類的方法加以擴充。這時B r i d g e 模式使你可以對不同的抽象介面和實現部分進行組合,並分別對它們進行擴充。
  • 對一個抽象的實現部分的修改應對客戶不產生影響,即客戶的代碼不必重新編譯。
  • (C + +)你想對客戶完全隱藏抽象的實現部分。在C + +中,類的表示在類介面中是可見的。
  • 有許多類要產生。這樣一種類階層說明你必須將一個對象分解成兩個部分。R u m b a u g h 稱這種類階層為“嵌套的普化”(nested generalizations )。
  • 你想在多個對象間共用實現(可能使用引用計數),但同時要求客戶並不知道這一點。一個簡單的例子便是C o p l i e n 的S t r i n g 類[ C o p 9 2 ],在這個類中多個對象可以共用同一個字串表示(S t r i n g R e p )。

 

執行個體

 

1.       定義一個介面 Work

    package Bridge_Pattern;    public interface Work {      public void show();    }

 

2.       定義一個類 Profession

    package Bridge_Pattern; public class  Profession {    private   Work   work;    public Profession(Work  work) {          this.work = work;    }    public void theme(){         work.show();                    }   }

 

3.      定義具體的IT工作 ITWork

 package Bridge_Pattern;public class  ITWork  implements Work {                 @Override          public void show(){              System.out.println("hello  this  is ITWork");         }  }

 

4.      定義一個銷售工作 SellWork

 package Bridge_Pattern;public class  SellWork implements Work{     @Override    public void show() {             System.out.println("hello this is sellwork");          }       } 

 

  5.      定義一個測試類別

 

 package Bridge_Pattern; public class Client {     public static void main(String[] args) {           //展現IT職業       new Profession(new ITWork()).theme();         //展現銷售職業       new Profession(new SellWork()).theme();            }}   

 

 總結 :

     在Spring架構中,用到橋接模式比較多。 敬請斧正!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.