《Android源码设计模式》读书笔记 (24) 第24章 桥接模式
来源:互联网 发布:java采购管理系统 编辑:程序博客网 时间:2024/06/05 00:16
正文
- 定义:将抽象部分与实现部分分离,使它们都可以独立地进行变化
- 使用场景:
如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承联系,可以通过桥接模式使它们在抽象层建立一个关联关系. - 优点:分离抽象与实现\灵活的扩展以及对客户来说透明的实现等.
UML类图
- Abstraction:抽象部分,该类保持一个对实现部分对象的引用,抽象部分中的方法需要调用实现部分的对象来实现,该类一般为抽象类.
/** * 抽象部分的实现 * Created by max on 2016/4/13. */public class Abstraction { private Implementor mImplementor;//声明一个私有成员变量引用实现部分的对象 public Abstraction(Implementor mImplementor) { this.mImplementor = mImplementor; } /** * 通过调用实现部分具体的方法实现具体的功能 */ public void operation(){ mImplementor.operatoinImpl(); }}
- RefinedAbstraction:优化的抽象部分,抽象部分的具体实现,该类一般是对抽象部分的方法进行完善和扩展.
/** * 抽象部分的子类 * Created by max on 2016/4/13. */public class RefinedAbstraction extends Abstraction{ public RefinedAbstraction(Implementor mImplementor) { super(mImplementor); } /** * 对父类抽象部分中的方法进行扩展 */ public void refinedOperation(){ //对Abstraction中的方法进行扩展 }}
- Implementor:实现部分.可以为接口或抽象类,其方法不一定要与抽象部分中的一致,一般情况下是由实现部分提供基本的操作,而抽象部分定义的规则是基于实现部分这些基本操作的业务方法
/** * 实现部分的抽象接口 * Created by max on 2016/4/13. */public interface Implementor { /** * 实现抽象部分的具体方法 */ public void operatoinImpl();}
- ConcreteImplementorA:实现部分的具体实现.完善实现部分中方法定义的具体逻辑.
/** * 实现部分的具体实现一 * Created by max on 2016/4/13. */public class ConcreteImplementorA implements Implementor{ @Override public void operatoinImpl() { //具体的实现 }}
- Client:客户端调用
/** * 客户端调用 * Created by max on 2016/4/13. */public class Client { public static void main(String[] args){ //客户端调用逻辑 }}
0 0
- 《Android源码设计模式》读书笔记 (24) 第24章 桥接模式
- 《Android源码设计模式》读书笔记 (1) 第1章 单例模式
- 《Android源码设计模式》读书笔记 (4) 第4章 原型模式
- 《Android源码设计模式》读书笔记 (5) 第5章 工厂模式
- 《Android源码设计模式》读书笔记 (12) 第12章 观察者模式
- 《Android源码设计模式》读书笔记 (6) 第6章 抽象工厂模式
- 《Android源码设计模式》读书笔记 (7) 第7章 策略模式
- 《Android源码设计模式》读书笔记 (8) 第8章 状态模式
- 《Android源码设计模式》读书笔记 (9) 第9章 责任链模式
- 《Android源码设计模式》读书笔记 (10) 第10章 解释器模式
- 《Android源码设计模式》读书笔记 (11) 第11章 命令模式
- 《Android源码设计模式》读书笔记 (13) 第13章 备忘录模式
- 《Android源码设计模式》读书笔记 (15) 第15章 模板方法模式
- 《Android源码设计模式》读书笔记 (16) 第16章 访问者模式
- 《Android源码设计模式》读书笔记 (17) 第17章 中介者模式
- 《Android源码设计模式》读书笔记 (18) 第18章 代理模式
- 《Android源码设计模式》读书笔记 (19) 第19章 组合模式
- 《Android源码设计模式》读书笔记 (20) 第20章 适配器模式
- Caffe与Lasagne使用——人脸关键点检测
- Direct2D Intro - Scale a Bitmap Source
- params详解
- VS2013配置EmguCV的准备工具
- 集群监控
- 《Android源码设计模式》读书笔记 (24) 第24章 桥接模式
- bootstrap
- JAVA 接口
- 各大机器学习包汇总(python版,持续更新)
- Struts2利用iText导出word文档
- 如何在iOS上创建矢量图形 画云 和 拼图块
- KindEditor(@version 4.1.10) 首个空格保存消失的问题
- Vim 自动补全神器-YouCompleteMe
- hive 的表操作问题 hive中简单介绍分区表