1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java 桥接模式_《JAVA与模式》之桥接模式

java 桥接模式_《JAVA与模式》之桥接模式

时间:2021-07-12 21:25:56

相关推荐

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)分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。

结构如下图所示:

参考地址:

/jason0539/article/details/22568865

/isswangqing/item/126e4318bd99a708e65c36b3

/xiaokangzhijia@126/blog/static/165954856111843618596/

/wangle/archive//04/25/113545.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。