java 桥接模式_《JAVA与模式》之桥接模式
橋接模式是一種結構型模式,它主要應對的是:由于實際的需要,某個類具有兩個或兩個以上的維度變化,如果只是用繼承將無法實現這種需要,或者使得設計變得相當臃腫。
橋接模式的做法是把變化部分抽象出來,使變化部分與主類分離開來,從而將多個維度的變化徹底分離。最后,提供一個管理類來組合不同維度上的變化,通過這種組合來滿足業務的需要。
舉個例子,對于筆記本的CPU評測,當安裝Intel CPU的時候 評測分數比較高,而安裝AMD CPU的時候,則評測分數相對低一些,這個是一唯影響,而配合上電腦品牌,就是二維影響
先看下面的代碼
1 interfaceCpuAbility{2
3 String abilityCpu();4 }5
6 class AdmCpu implementsCpuAbility{7
8 publicString abilityCpu() {9 //TODO Auto-generated method stub
10 return "系能一般";11 }12 }13 class IntelCpu implementsCpuAbility{14 publicString abilityCpu() {15 //TODO Auto-generated method stub
16 return "系能比較牛";17 }18 }19
20 abstract classAbstractComputer{21
22 CpuAbility cpuAbility;23
24 publicAbstractComputer(CpuAbility cpuAbility){25 this.cpuAbility=cpuAbility;26
27 }28
29
30 public abstract voidcheckPcAbility();31
32 }33
34 class LenevoComputer extendsAbstractComputer{35
36 publicLenevoComputer(CpuAbility cpuAbility) {37 super(cpuAbility);38 //TODO Auto-generated constructor stub
39 }40
41 @Override42 public voidcheckPcAbility() {43 System.out.println("華碩筆記本CPU性能"+super.cpuAbility.abilityCpu());44 }45
46 }47 class IswComputer extendsAbstractComputer{48
49 publicIswComputer(CpuAbility cpuAbility) {50 super(cpuAbility);51 //TODO Auto-generated constructor stub
52 }53
54 @Override55 public voidcheckPcAbility() {56 System.out.println("IBM筆記本CPU性能"+super.cpuAbility.abilityCpu());57 }58
59 }
執行代碼并輸出
1 CpuAbility ability =newIntelCpu();2 AbstractComputer computer =newLenevoComputer(ability);3 computer.checkPcAbility();4 ability =new AdmCpu();//華碩筆記本CPU性能系能比較牛
5 computer =newIswComputer(ability);6 computer.checkPcAbility();//IBM筆記本CPU性能系能一般
可以看到,通過對象組合的方式,Bridge 模式把兩個角色之間的繼承關系改為了耦合的關系,從而使這兩者可以從容自若的各自獨立的變化,這也是Bridge模式的本意。
Bridge模式是構造型的設計模式之一。Bridge模式基于類的最小設計原則,通過使用封裝,聚合以及繼承等行為來讓不同的類承擔不同的責任。它的主要特點是把抽象(abstraction)與行為實現(implementation)分離開來,從而可以保持各部分的獨立性以及應對它們的功能擴展。
結構如下圖所示:
參考地址:
http://blog.csdn.net/jason0539/article/details/22568865
http://hi.baidu.com/isswangqing/item/126e4318bd99a708e65c36b3
http://blog.163.com/xiaokangzhijia@126/blog/static/1659548562010111843618596/
http://www.blogjava.net/wangle/archive/2007/04/25/113545.html
總結
以上是生活随笔為你收集整理的java 桥接模式_《JAVA与模式》之桥接模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 自动拆箱_Java 自动装箱
- 下一篇: oracle的存储设置默认参数,orac