設計模式之橋接模式-bridge

橋模式:將某個問題抽象的不同形式分別與該問題的具體實現部分相分離,使他們都可以獨立變化,並能夠動態結合。

     例如電視廠商海爾,長虹生產21寸,29寸電視機。從這裏要將它們分離出來,就用到橋模式。電視機與電視機生產廠商掛橋,從而,分離出不同廠商的實現,與不同電視機型號的實現.

   

看下代碼

創建電視機

Java代碼
  1. public abstract class Television {  
  2.     //電視廠商  
  3.     protected TelevisionMaker televisionMaker;  
  4.     //收看電視  
  5.     abstract public void teleview(TelevisionMaker televisionMaker);  
  6. }  

 

接下來創建生產廠商

Java代碼
  1. public abstract class TelevisionMaker {  
  2.     abstract public void produce();  
  3. }  

 

電視機的型號,即繼承電視機類

Java代碼
  1. public class Inch21 extends Television{  
  2.       
  3.     public void teleview(TelevisionMaker televisionMaker) {  
  4.         System.out.println("21寸電視");  
  5.     }  
  6.   
  7. }  

 

Java代碼
  1. public class Inch29 extends Television{  
  2.       
  3.     public void teleview(TelevisionMaker televisionMaker) {  
  4.         System.out.println("29寸電視");  
  5.     }  
  6.   
  7. }  

 

下面是不同廠商,即繼承生產廠商

 

Java代碼
  1. public class ChangHong extends TelevisionMaker{  
  2.   
  3.     public ChangHong(){  
  4.         System.out.println("長虹廠商");  
  5.     }  
  6.       
  7.     public void produce() {  
  8.         System.out.println("長虹廠商");  
  9.     }  
  10. }  

 

Java代碼 複製代碼 收藏代碼
  1. public class Haier extends TelevisionMaker{  
  2.     public Haier(){  
  3.         System.out.println("海爾廠商");  
  4.     }  
  5.       
  6.     public void produce() {  
  7.         System.out.println("海爾廠商");  
  8.     }  
  9.   
  10. }  

 

這樣就使用了橋模式,將原本繁雜的系統分離開來。如果根據需求變動,要增加電視機生產型號或者電視機生產廠商,只需要實現相對應的抽象類即可。

這樣,我們也可以根據用戶的需要,得到他所需要的電視機,如長虹廠商出廠的29寸電視機。

測試代碼如下:

Java代碼
  1. public class Client {  
  2.   
  3.     public static void main(String[] args) {  
  4.         // TODO Auto-generated method stub  
  5.         Inch29 i = new Inch29();  
  6.         i.teleview(new ChangHong());  
  7.     }  
  8. }  

 結果:

      長虹廠商
      29寸電視

轉自:點擊打開鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章