一、bridge模式

*
需求

为不同款的手机设置相同的功能。

*
代码实现

手机功能抽象类:
public abstract class HandSetSoft { public abstract void run(); }
手机品牌抽象类:
public abstract class HandSetBrand { private HandSetSoft soft; public void
setSoft(HandSetSoft soft) { this.soft = soft; } public HandSetSoft getSoft() {
return soft; } public abstract void run(); }
手机功能实现类:
public class HandSetGame extends HandSetSoft { @Override public void run() {
System.out.println("运行手机游戏"); } } public class HandSetAddressList extends
HandSetSoft { @Override public void run() { System.out.println("运行手机通讯录"); } }
手机品牌实现类:
//手机品牌N public class HandSetBrandN extends HandSetBrand { @Override public
void run() { super.getSoft().run(); } } //手机品牌S public class HandSetBrandS
extends HandSetBrand { @Override public void run() { super.getSoft().run(); } }
测试类:
public class Test { public static void main(String[] args) { //手机N品牌
HandSetBrand abN = new HandSetBrandN(); abN.setSoft(new HandSetGame());
abN.run(); abN.setSoft(new HandSetAddressList()); abN.run(); //手机S品牌
HandSetBrand abS = new HandSetBrandS(); abS.setSoft(new HandSetGame());
abS.run(); abS.setSoft(new HandSetAddressList()); abS.run(); } }
二、桥接模式定义

        将抽象部分与他的实现部分分离,使他们可以独立的变化。就以上例子而言,实际上是手机既可以以品牌分类,也可以按照功能分类。如果增加新的功能或者新的品牌的手机,都只需要添加实现类即可。

桥接模式结构图:

 

 

 

技术
©2019-2020 Toolsou All rights reserved,
某东14薪变16薪,是诚意还是套路?HashMap详解os模块的简单使用html写樱花树,写樱花树的作文浏览器内核(理解)java四大函数式接口(重点,简单)让人意想不到的Python之樱花树(turtle库的华丽样式)计算机网络---计算机网络基本概念(协议、体系)06【若依框架解读】数据范围过滤--太牛了