Android设计模式-23-桥接模式
2021-03-11 本文已影响0人
今阳说
1. 定义
将抽象部分与实现部分解耦,使他们都可以独立的进行变化
又称桥梁模式,柄体模式
2. 使用场景:
任何多维度变化类或者多个树状类之间的耦合都可以使用桥接模式来实现解耦
需要在抽象化角色与具体化角色间增加更多灵活性,避免建立静态的继承联系
不希望使用继承或由于多层次继承导致系统类的个数急剧增加时
一个类存在两个独立变化的维度,且这两个维度都需要进行扩展
3. 优缺点
优点:
抽象和实现的分离
优秀的扩展能力
实现细节对客户透明
缺点:桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程
4. Android源码中的使用:
CheckBox,Button,TextView,等View的绘制都是由与View相关的功能实现类DisplayList,HardwareLayer,Canvas负责
Adapter和AdapterView(AbsListView的父类)
Window和WindowManager
5. 实例演示
以咖啡大小杯和口味为例,不管是Coffee变化(大小杯),还是风味变化(CoffeeAdditives),其相对于对方而言都是独立的,两者唯一的联系就是Coffee中保持对coffeeAdditives的引用,为二者间的纽带,这就是桥接模式
1. 创建一个咖啡调味剂的抽象类
2. 调味剂的实现类,如原味,奶香,焦糖等
3. 创建咖啡的抽象类
4. 咖啡的实现类,大杯中杯小杯等
5. 创建不同风味,不同大小的咖啡
我是今阳,如果想要进阶和了解更多的干货,欢迎关注公众号”今阳说“接收我的最新文章