桥接模式与策略者模式分析
来源:互联网 发布:嵌入式c语言应用领域 编辑:程序博客网 时间:2024/05/22 12:11
桥接模式在于分离了实现和抽象,它将其分别放到了两个不同的类层次.
golf说在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。
从上图看到了两个变化维度,一个就是implementor,一个是abstraction,前者是实现后者是抽象,那说明实现和抽象两方面都可能变化。abstraction可能派生出不同的RefinedAbstraction,而Implementor也有不同的实际implementor.
那么这个桥就是连接两个变化维度的,RefinedAbstraction和ConcreteImplemetorA之间是通过Abstraction和Implementor发生联系,而他们两个之间本身确实松散的关系,而Abstracion聚合了几个Implementor,那Abstraction即依赖了Implementor,而最终Abstraction试图基于implementor提供的基本操作又定义了更高层次的接口,比如Operation(),它们使用了implemntor提供的抽象接口,委托于具体来实现。而本身abstracion的高层接口也进行了派生。所以说有两个变化维度。
类似的策略者模式:
区别1:bridge为构造模式,strategy为行为模式。
区别2:在策略模式中,并不考虑Context的变化,只有算法的可替代性,而bridge具有两个维度的变化。
区别3:桥接模式强调Implementor接口仅提供基本操作,而Abstraction则基于这些基本操作定义更高层次的操作。而策略模式强调Strategy抽象接口的提供的是一种算法,一般是无状态、无数据的,而Context则简单调用这些算法完成其操作。
还有一种Builder模式,下次详谈...
- 桥接模式与策略者模式分析
- 桥接模式与策略模式
- 策略模式与桥接模式
- 桥接模式与策略模式区别
- 策略模式(Strategy)实例分析与讲解
- 从桥接模式与策略模式谈起
- 从桥接模式与策略模式谈起
- iOS模式分析-策略模式
- 策略模式与合成模式
- 策略模式与状态模式
- 策略模式与桥梁模式
- 策略模式与外观模式
- 代理模式与策略模式
- 命令模式与策略模式
- 策略模式与状态模式
- 状态模式与策略模式
- Spring与策略模式
- JavaScript与策略模式
- 深入理解sizeof
- SPL autoload机制的实现
- Linux Stateless无状态NAT-使用TC来配置
- POJ - 1730 注意看题..精度要留意..
- poj 3687 【拓扑排序】【Labeling Balls】
- 桥接模式与策略者模式分析
- google map api 标注 js嵌入网页
- 谈工作和生活
- poj 1270 Fowllow order
- Oracle - SQL 优化 -------- > 创建计划表
- 使用CSTD技术轻松编写0 Bug的代码
- Linux下C语言键盘输入密码时无回显(屏幕不显示字符)
- POJ - 1797 最短路思想加以变化解此题..
- 1