设计模式之桥接模式(结构型)
Posted 思想累积
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之桥接模式(结构型)相关的知识,希望对你有一定的参考价值。
1、简介
1.1 定义
桥接模式(Bridge):将抽象与实现分离,使它们可以独立变化
比如我们常用的 JDBC 连接数据库的时候,在各个数据库之间进行切换,基本不需要改动什么代码,甚至丝毫不用动,原因就是 JDBC 提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就可以了
1.2 优缺点
优点:
- 抽象与实现分离,扩展能力强
- 符合开闭原则
- 符合合成复用原则
- 实现细节透明
缺点:
- 聚合关系建立在抽象层,增加了系统的理解和设计难度
1.3 结构
桥接模式主要包含以下几个角色
- 抽象(Abstraction)角色:定义抽象类,包含一个对实现化对象的引用
- 扩展抽象化(Refined Abstraction)角色:抽象化角色的子类,实现父类中的方法,并通过组合关系调用实现化角色中的方法
- 实现(Implementor)角色:定义实现化角色的接口,供扩展抽象化角色调用
- 具体实现(Concrete Implementor)角色:实现化角色的具体实现
2、代码实现
/**
* 实现角色,供抽象角色调用
*/
public interface Implementor
void operationImpl();
/**
* 具体实现角色 A,对实现角色声明的方法进行实现
*/
public class ConcreteImplementorA implements Implementor
@Override
public void operationImpl()
System.out.println("具体实现角色 A");
/**
* 抽象角色,包含对实现角色的引用
*/
public abstract class Abstraction
protected Implementor implementor;
protected Abstraction(Implementor implementor)
this.implementor = implementor;
public abstract void operation();
/**
* 抽象角色的子类,实现父类方法并组合起来对实现角色中的方法进行调用
*/
public class RefinedAbstraction extends Abstraction
public RefinedAbstraction(Implementor implementor)
super(implementor);
@Override
public void operation()
System.out.println("扩展抽象化角色的 operation 方法");
implementor.operationImpl();
以上是关于设计模式之桥接模式(结构型)的主要内容,如果未能解决你的问题,请参考以下文章