《Android源码设计模式》读书笔记 (24) 第24章 桥接模式
2016-04-13 16:47
357 查看
正文
定义:将抽象部分与实现部分分离,使它们都可以独立地进行变化使用场景:
如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承联系,可以通过桥接模式使它们在抽象层建立一个关联关系.
优点:分离抽象与实现\灵活的扩展以及对客户来说透明的实现等.
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){ //客户端调用逻辑 } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories