Bridge模式
来源:互联网 发布:svn迁移到linux 编辑:程序博客网 时间:2024/06/05 10:13
说在文章之前,本文都是自己学习了设计模式之后的一些个人的理解,干货不是很多,记录下来主要是方便自己查看,同时也可以和大家交流下,发现自己理解当中的一些纰漏。
Bridge模式属于结构型设计模式,主要作用是实现对象抽象和实现的分离。达到降低程序耦合的效果。
模式的介绍
将对象的抽象和实现进行分离,使之可以独立的变化。[出自设计模式]
首先我们来解释什么叫做对象的抽象和实现。
对象的抽象就是程序设计中对于现实当中的对象进行概念上的提取,并进行代码上的描述。这里更加注重的是对象概念的提取,而不是对象的一些操作。对象的实现在代码上面更多的表现为一些具体的操作。
常规的做法是采用继承的方式来实现对象抽象和实现之间的耦合。这样有很大的缺点就是:将对象的抽象和实现进行了固定的绑定,很难进行后续的修改、扩充和重用[出自设计模式]。
Bridge模式就是想要将两者进行分离,采用耦合度更低的方式来关联两者。以便使之可以独立的修改、扩充。
模式的实现方式
既然我们明确了要求,就需要具体的实现。
首先,我们应该从概念上对抽象和实现进行分离,明确那一部分属于对象的抽象部分,那一部分属于对象的实现。如果这里没有完成很好的划分,那么整个设计模式的作用很难体现出来,因为没能实现两者的分离。
然后对对象的两个部分分别使用一个对象进行描述,实现自己部分的操作,也可以在这里使用多继承的技术,相当于对两者分别进行了扩充。
最后,关联两者。一般采用的是在对象的抽象部分设置一个对象实现的引用。这意味着在代码的执行阶段,对象可以采用不同的实现。
优点
Bridge模式有以下一些优点:
1、分离接口及其实现部分 一个实现未必不变地绑定在一个接口上。抽象类的实现可以在运行时刻进行配置,一个对象甚至可以在运行时刻改变它的实现。将Abstraction与Implementor分离有助于降低对实现部分编译时刻的依赖性,当改变一个实现类时,并不需要重新编译 Abstraction类和它的客户程序。为了保证一个类库的不同版本之间的二进制兼容性,一定要有这个性质。另外,接口与实现分离有助于分层,从而产生更好的结构化系统,系统的高层部分仅需知道Abstraction和Implementor即可。
2、 提高可扩充性 你可以独立地对Abstraction和Implementor层次结构进行扩充。
3 、实现细节对客户透明 你可以对客户隐藏实现细节,例如共享Implementor对象以及相应的引用计数机制(如果有的话)。
总结
设计模式的书中说过,设计模式本就是一些程序开发经验的总结和提取,所以每个人对同样的模式可能有不同的使用方式,只要能够使项目结构更合理、健壮都是合理的方式。至于其中的得失,需要自己进行评估。
- Bridge模式
- Bridge模式
- Bridge模式
- bridge模式
- Bridge模式
- Bridge模式
- Bridge 模式
- Bridge 模式
- Bridge 模式
- Bridge模式
- bridge模式
- Bridge模式
- bridge模式
- bridge模式
- Bridge模式
- Bridge模式
- Bridge 模式
- Bridge模式
- 低级错误(持续更新中)
- 纯css美化单选按钮
- HTML5
- collections.defaultdict类的使用
- crontab任务运行报错:Crontab FailureEmails - /bin/sh: 1 : ambiguous redirect
- Bridge模式
- 20160222 C基础知识点易遗漏点
- JAVA简易WEB服务器(一)
- 获取apk签名指纹的md5值 防止重新被打包
- 对java堆、栈的理解
- 项目中用到的bluetooth4.0协议的定制
- 关于内存泄露问题
- Web3D
- NSJSONSerialization-JSON数据与NSDictionary和NSArray之间的转化