bridge算法java实现,Java 实现桥接(Bridge)模式

类图:

de12ecda7f5dc68f9ed3f0eb8889ac1c.png

/**

* 手机壳、套

* @author stone

*

*/

public abstract class BaseCellphoneShell {

public abstract void mapping();//对应匹配哪种手机

}

/**

* 手机,桥接了 手机壳BaseCellphoneShell

* @author stone

*/

public abstract class BaseCellphone {

private BaseCellphoneShell shell;

public void setShell(BaseCellphoneShell shell) {

this.shell = shell;

}

public BaseCellphoneShell getShell() {

return shell;

}

public abstract void mapping();//对应哪种壳

}

/**

* 手机的实现

* @author stone

*

*/

public class Cellphone extends BaseCellphone {

@Override

public void mapping() {

System.out.println("本手机对应的壳是:");

getShell().mapping();

}

}

/**

* 手机壳的实现

* @author stone

*

*/

public class CellphoneShell extends BaseCellphoneShell {

@Override

public void mapping() {

System.out.println("壳----iphone6");

}

}

/*

* 桥接(Bridge)模式, 是结构型模式

*

* 将抽象化与实现化脱耦,使得二者可以独立的变化,也就是说将他们之间的强关联变成弱关联,

* 也就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以独立的变化。

*/

public class Test {

public static void main(String[] args) {

/*

* 在本例中:手机和手机壳之间有强关联的关系:要么手机对应一种壳(BaseCellphoneShell),要么壳对应一种手机(BaseCellphone)

* 手机可以有多维度变化,如依据品牌划分的、依据尺寸划分的、依据个性需求划分的等

* 手机壳也有多维度变化,因为它要适配上面划分出来的手机

* 将桥作在了BaseCellphone中,聚合接入了BaseCellphoneShell

*/

BaseCellphone cellphone = new Cellphone();

cellphone.setShell(new CellphoneShell());//聚合接入

cellphone.mapping();

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值