设计模式之桥接模式

桥接模式概念介绍:它是一种结构型设计模式,将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象和行为实践分离开来,从而保持各部位的独立性以及应对他们的功能扩展

案例:以手机的品类与样式来举例,比如说,手机的品牌,现在有VIVO、小米、华为等手机,手机的样式有:直板、滑盖等样式的手机,传统的做法是,如果想新加一个apple品牌的手机,那么除了新加一个手机品牌之外,那么还需要给重新改一下样式的类,因为apple手机可能也有直板、滑盖等样式,如果说新增了一个样式,比如说叫翻盖,那么现有的所有的品牌的手机,都需要进行修改,因为这些品牌的手机可能也包含这种翻盖样式的手机,这样维护成本就会大大的提高,并且也违反了类的最小设计原则,所以就提出了桥接模式
UML类图:简单介绍一下下面的这个类图,Brand,这是一个接口,这个接口充当了桥接模式中的实现这一层,这里是将手机的品牌定义成接口,由不同的品牌的手机分别进行实现,所以这就是实现层,而Phone这个类是一个抽象类,由不同的样式的子类去继承它,所以这也就是抽象层,而Client作为使用者,仅仅去使用抽象类和接口即可,这样如果新增一个样式或者品牌就无需变动很多的代码即可实现,大大的减少维护的成本同样的也满足了类的最小设计原则。
在下面这个类图中,Phone就充当了桥的作用,因为可以看出来,Phone这个类里面聚合了Brand这个接口,实际上也就相当于聚合了Brand的所有的实现类
在这里插入图片描述
实现层代码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
抽象层代码:
在这里插入图片描述
在这里插入图片描述
客户端:
在这里插入图片描述
运行结果:
在这里插入图片描述
如果此时需求变更,想再加一个直板样式的手机,仅仅需要增加一个类,并且修改客户端代码即可,代码如下:
新增加的手机样式代码:
在这里插入图片描述
客户端代码修改:
仅仅只需要将新的样式代码加入进来即可
在这里插入图片描述
运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值