设计模式学习笔记(一): Bridge 模式
2010-11-09 20:35
295 查看
今年5月的时候制定goal的时候提到了要看一本设计模式的书,结果到现在了还啥也没看。决定每天看一点,学习的文章来自网站http://sourcemaking.com/design_patterns/ 主要是按自己的理解翻译记录一下,可能错误会比较多。
最近半年开发的项目都是跨PC和Mac的,Bridge模式中的接口和实现分离见的的比较多。
Bridge 模式
目的 :
1) 将抽象和具体实现间解耦合,这样让两者保持独立性。
2) 将接口发布在一个继承关系层,将实现隐藏在它自己的继承关系层。
3) 在封装之外在加上隔离
动机:
对于下图所示的线程分配系统
如果再加入一种平台
如果加入更多种平台呢,要添加的具体实现内将会很多。
所以Bridge模式的解决办法是将继承关系抽离出两个正交的关系。接口独立于平台,而实现依赖于平台。
讨论:
何时使用Bridge模式:
1)当你希望具体实现运行时绑定
2)当你遇到一个接口和数量可观的实现之间的耦合导致的类扩散问题。(proliferation of classes)
3)当你希望在多个对象之间共享实现
4)当你需要映射正交的类结构时
规则提要:
1) Adapter模式针对对象被设计好之后,Bridge模式针对对象设计前
2)Bridge模式被设计用于将抽象接口和具体实现分离。而Adapter模式让不相关的类能合作
3)State、Strategy、Bridge(某些Adapter)具有类似的解决方案结构。因为它们分享了“handle/body”idiom的元素。它们的不同在于目的--解决不同的问题
4)State和Bridge模式的结构是一致的(除了Bridge承认envelope classes的分层,而State只有一层)。两者用相同的结构解决不同的问题:State允许一个对象的行为随着它的状态改变,而Bridge的目的是解耦抽象和实现以使二者在依赖性上独立。
5)如果接口类代理了具体实现的创建(而不是直接创建/耦合它们),那么这种设计通常就会用Abstract Factory模式来创建具体实现对象。
最近半年开发的项目都是跨PC和Mac的,Bridge模式中的接口和实现分离见的的比较多。
Bridge 模式
目的 :
1) 将抽象和具体实现间解耦合,这样让两者保持独立性。
2) 将接口发布在一个继承关系层,将实现隐藏在它自己的继承关系层。
3) 在封装之外在加上隔离
动机:
对于下图所示的线程分配系统
如果再加入一种平台
如果加入更多种平台呢,要添加的具体实现内将会很多。
所以Bridge模式的解决办法是将继承关系抽离出两个正交的关系。接口独立于平台,而实现依赖于平台。
讨论:
何时使用Bridge模式:
1)当你希望具体实现运行时绑定
2)当你遇到一个接口和数量可观的实现之间的耦合导致的类扩散问题。(proliferation of classes)
3)当你希望在多个对象之间共享实现
4)当你需要映射正交的类结构时
规则提要:
1) Adapter模式针对对象被设计好之后,Bridge模式针对对象设计前
2)Bridge模式被设计用于将抽象接口和具体实现分离。而Adapter模式让不相关的类能合作
3)State、Strategy、Bridge(某些Adapter)具有类似的解决方案结构。因为它们分享了“handle/body”idiom的元素。它们的不同在于目的--解决不同的问题
4)State和Bridge模式的结构是一致的(除了Bridge承认envelope classes的分层,而State只有一层)。两者用相同的结构解决不同的问题:State允许一个对象的行为随着它的状态改变,而Bridge的目的是解耦抽象和实现以使二者在依赖性上独立。
5)如果接口类代理了具体实现的创建(而不是直接创建/耦合它们),那么这种设计通常就会用Abstract Factory模式来创建具体实现对象。
相关文章推荐
- 设计模式C++学习笔记之十一(Bridge桥梁模式)
- 设计模式学习笔记-bridge
- [学习笔记]设计模式之Bridge
- 设计模式学习笔记——桥接(Bridge)模式
- 设计模式学习笔记(八)——Bridge桥接模式
- 设计模式C++学习笔记之十一(Bridge桥梁模式)
- 阿Sam的设计模式学习笔记---- Bridge模式
- 设计模式学习笔记——桥接(Bridge)模式
- 设计模式C++学习笔记之二(Bridge桥梁模式)
- java 设计模式学习笔记十 bridge桥模式
- 设计模式学习笔记(八)——Bridge桥接
- java 设计模式学习笔记十 bridge桥模式
- C#面向对象设计模式学习笔记(7) - Bridge 桥接模式(结构型模式)
- 设计模式学习笔记——桥接模式(Bridge Patten)
- 设计模式学习笔记——Bridge模式
- 设计模式学习笔记:看着挺像的Strategy Bridge Command
- [设计模式学习笔记]Bridge桥接模式
- 设计模式C++学习笔记之十一(Bridge桥梁模式)
- 设计模式学习笔记---桥接模式bridge(Java版)
- Bridge模式——设计模式学习笔记