设计模式之桥接模式
来源:互联网 发布:手机计算道路软件 编辑:程序博客网 时间:2024/06/04 18:17
【桥接模式】:将抽象部分与它的实现部分分离,使它们可以独立的变化,别称柄体模式或接口模式。简单的说它将两个独立变化的维度设计为两个独立的继承等级结构,并且在抽象层建立一个抽象关联,该关联关系类似一条连接两个独立继承结构的桥,故名桥接模式。桥接模式是设计Java虚拟机和实现JDBC等驱动程序的核心模式之一,应用广泛。
桥接模式结构中存在以下角色:
- Abstraction(抽象类):用于定义抽象类的接口,往往是抽象类而非接口,其定义了一个Implementor(实现类接口)对象并维护该对象。它与Implementor之间具有关联关系,它既可以包含抽象业务方法,也可以包含具体业务方法。
- RefinedAbstraction(扩充抽象类):扩充由Abstraction定义的接口,通常情况下它不再是抽象类而是具体类,它实现了在Abstraction中声明的抽象业务方法,在RefinedAbstraction中可以调用在Implementor中定义的业务方法。
- Implementor(实现类接口):定义实现类的接口,这个接口不一定要与Abstraction的接口完全一致,事实上这两个接口可以完全不同,一般而言,Implementor接口仅提供基本操作,而Abstraction定义的接口可能会做更多更复杂的操作。Implementor接口对这些基本操作进行了声明,而具体实现交给其子类。通过关联关系,在Abstraction中不仅拥有自己的方法,还可以调用到Implementor中定义的方法,使用关联关系来替代继承关系。
- ConcreteImplementor(具体实现类):具体实现Implementor接口,在不同的ConcreteImplementor中提供基本操作的不同实现,在程序运行时,ConcreteImplementor对象将替换其父类对象,提供给抽象类具体的业务操作方法。
桥接模式代码如下:
interface Implementor { //实现类接口 public void operate(); }
public abstract class Abstraction { //抽象类 protected Implementor implementor; //定义实现类接口对象 public void setImpl(Implementor implementor) { this.implementor=implementor; } public abstract void operate(); //声明抽象业务方法 }
class RefinedAbstraction extends Abstraction { public void operation() { //业务代码…… implementor.operate(); //调用实现类的方法 //更多的业务代码…… } }
桥接模式具体的优点和缺点、使用场景可参考http://blog.csdn.net/lovelion/article/details/7464208
1 0
- 设计模式之桥接模式
- C# 设计模式 之 桥接模式
- c#设计模式之[桥接模式]
- 设计模式之桥接模式
- 设计模式之-Bridge-- 桥接模式
- 设计模式之桥接模式
- 设计模式之桥接模式
- 设计模式之Bridge(桥接模式)
- 设计模式之桥接模式
- 设计模式之Bridge(桥接模式)
- 设计模式之桥接模式BridgePattern
- C# 设计模式之桥接模式
- 设计模式之桥接模式
- 设计模式之桥接模式
- Java 设计模式 之 桥接模式
- Java 设计模式 之 桥接模式
- Java 设计模式 之 桥接模式
- 设计模式之桥接模式
- Markdown编辑器(Atom,Markdownpad2,Typora)初比较
- hdu 2230 watchcow 【图论-欧拉回路-遍历-输出路径】
- eclipse清除运行Maven build...后积累的配置项
- PHP实现页面静态化——全部纯静态化
- 4.sqoop RDBMS与Hive数据互导
- 设计模式之桥接模式
- 二叉树:搜索二叉树和完全二叉树
- jishu
- HDU 1879 继续畅通工程(kruskal,prim)
- Ubuntu 16.04 安装iNode客户端
- 素数距离问题
- SSM中Spring双亲容器的构造过程和XML加载顺序
- 【Spring】Bean的自动装配
- 栈,堆,队列,堆栈的区别