java桥接模式

  桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。

用手机举例子:手机品牌有vivo 小米手,机有翻盖机折叠机。传统方法时抽象一个手机类,vivo 小米分别继承手机类,翻盖机折叠机分别继承小米,vivo。导致后面的类越来越多,新加一个手机时要新增好多东西。现在创建一个接口brand品牌,分别用小米vivo去实现,抽象一个手机类,将brand聚合进去,由于多态的效果,可以将brand的实现类全部带入进去。再用折叠手机与翻盖手机去继承抽象手机类,在子类的方法中可以用brand里面的方法实现组合。可以理解将牌子接口注入固定的手机外壳。当新出现手机品牌,直接实现brand接口就行了,然后在抽象手机类的子类自由组合。

抽象phone类
abstract class phone {
 public brand b;
void open() {
	// TODO Auto-generated method stub
	
}
}
//接口品牌类
interface  brand {
 abstract void open();
}

//vivo手机
public class vivo implements brand {

	@Override
	public void open() {
		System.out.println("vivo手机开机");
		
	}

}
//折叠手机
class folderPhone extends phone {
    public folderPhone(brand b1) {
	this.b=b1;
}
	@Override
	void open() {
		b.open();
		System.out.println("折叠手机开机");
		
	}
	

}
//这里只写了一个vivo类,当传入小米时会显示折叠的小米手机开机
public static void main(String[] args) {
	folderPhone f=new folderPhone(new vivo());
	f.open();
}
}

1) 实现了抽象和实现部分的分离,从而极大的提供了系统的灵活性,让抽象部分和实现部分独立开来,这有助于 系统进行分层设计,从而产生更好的结构化系统。

2) 对于系统的高层部分,只需要知道抽象部分和实现部分的接口就可以了,其它的部分由具体业务来完成。

3) 桥接模式替代多层继承方案,可以减少子类的个数,降低系统的管理和维护成本。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值