桥接模式
2019-04-13 本文已影响0人
fanren
定义
将抽象部分和实践部分分离,使它们可以独立地进行变化;
应用场景
- 开发中面临层级结构复杂(类爆炸),可以使用桥接模式
- 对不同的API进行建立桥接
- 一个类存在两个独立地维度,且这两个维度都需要进行扩张。
角色划分
- 角色一:抽象部分
- 角色二:具体抽象部分(优化的抽象部分)
- 角色三:抽象实现部分
- 角色四:实现部分具体功能
原理案例
以咖啡为例:demo
型号:大杯、中杯、小杯
配料:加冰、不加冰,加糖、不加糖
- 角色一:抽象部分:(配料)CoffeeIngredients
- 角色二:具体抽象部分:IceIngredients、NoIceIngredients、SugarIngredients、NoSugarIngredients
- 角色三:抽象实现部分:Coffee
特点:持有抽象部分引用 - 角色四:实现部分具体功能:BigCoffee、MiddleCoffee、SmallCoffee
开发案例
demo
以聊天消息的界面为例,有各种各样的cell;
类型:TextCell、ImageCell、AudioCell、VideoCell
方向:LeftDirection、RightDirection