桥接模式

桥接模式是指将抽象和实现放在两个不同的类层次中,使得两个层次可以独立改变.
他的特点就是把抽象和实现分开,从而保持各个部分的独立性以及对他们类的扩展
昨天晚上刷抖音的时候刷到了一个特别好的例子,就是开枪案例
我们人是抽象的,而我们开枪的实现是通过我们的枪进行实现的,所以这里我们的抽象就是人,实现就是枪,我们桥接模式,实际上就相当于搭了一座桥,让这两个之间进行联系,把实现聚合到我们的抽象之中,这样子,一方面解耦了,另一方面也有利于我们的扩展性

比如我们的手机和品牌案例,如果我们按照传统的方法进行实现,手机的品牌有很多种,我们的手机款式也有很多种,如果按照传统进行排列组合,那么可想而知我们要写多少个类,增加一个类会导致增加多少类,会产生类爆炸现象,但是如果我们利用桥接模式,我们可以给其搭一座桥梁,但是却不影响他们之间的扩展性,这样我们就很方便进行我们的扩展,在我们的DriverManager中用的正是这种思想

我们还是举开枪案例吧
package bridgepattern;

public interface Gun {
public void fire();
}
这是我们代码的接口枪
package bridgepattern;
public class M4A1Gun implements Gun{
@Override
public void fire() {
System.out.println(“拿M4A1进行开火”);
}
}
我们可以拿AK47实现它,也可以拿M4A1实现它,并且实现了其fire开枪方法
package bridgepattern;
public class M4A1Gun implements Gun{
@Override
public void fire() {
System.out.println(“拿M4A1进行开火”);
}
}
这里我们抽象的是人
package bridgepattern;

public abstract class Person {
Gun gun;
public abstract void fire();
}
我们聚合其实现,这样这样子就相当于搭了一座桥一样,可以调用实现的方法
package bridgepattern;

public class Man extends Person{
public Man(Gun g) {
this.gun=g;
}
@Override
public void fire() {
gun.fire();
}
}
我们具体的抽象去调用实现的方法进行开枪,这就是一个简单的桥接模式
他对于我们类之间的解耦很重要,方便了我们的类扩展,防止了类爆炸现象,也不影响实现和抽象的特性,以及扩展
其实现了我们抽象和实现的部分分离,增加了系统 的灵活性让抽象和实现独立开来,产生更加好的结构系统,对于系统的高层部分,我们只需要知道抽象部分,和其实现的部分接口即可,其他由具体的业务来进行完成,我们这里减少了我们类的个数,从而更好的结构化系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值