设计模式之桥接模式
设计模式之桥接模式
桥接模式定义:将抽象和实现解耦,使得两者可以独立变化
关键点:1.分离抽象和具体 2.用聚合方式(桥)连接抽象和具体
用的不多,了解即可
桥梁模式通过类图

Abstraction:抽象化角色
它的主要职责是定义出该角色的行为,同时保存一个对实现化角色的引用,该角色一般是抽象类
Implementor:实现化角色
它是接口或者抽象类,定义角色必需的行为和属性。
RefinedAbstraction:抽象化角色的具体
ConcreteImplementor:实现化角色的具体
2.桥接模式通用源码
2.1 实现化角色
public interface Implementor {
void doSomething();
void doAnything();
}
2.2 创建实现化角色具体
public class ConcreteImplementor1 implements Implementor {
@Override
public void doSomething() {
// 业务逻辑处理
}
@Override
public void doAnything() {
// 业务逻辑处理
}
}
2.3 创建 抽象化角色
public abstract class Abstraction {
// 定义对实现化角色的引用
private Implementor implementor;
public Abstraction(Implementor implementor) {
this.implementor = implementor;
}
// 自身的行为和属性
public void request() {
this.implementor.doSomething();
}
// 实现化角色
public Implementor getImplementor() {
return implementor;
}
}
2.4 创建抽象化角色具体
public class RefineAbstraction extends Abstraction {
public RefineAbstraction(Implementor implementor) {
super(implementor);
}
// 修正父类的行为
@Override
public void request() {
super.request();
super.getImplementor().doAnything();
}
}
2.5 创建Client调用
public class Client {
public static void main(String[] args) {
// 定义一个实现化角色
Implementor implementor = new ConcreteImplementor1();
// 定义一个抽象化角色
Abstraction abstraction = new RefineAbstraction(implementor);
// 执行代码
abstraction.request();
}
}
3.桥接模式的优点
- 抽象和实现分类:为了解决继承的缺陷而提出的设计模式
- 优秀的扩充能力
- 实现细节归客户透明
4.桥接模式的使用场景
- 不希望或者不适合使用继承的场景
- 抽象或者抽象类不稳定的场景
- 重要性要求较高的场景
桥接模式的意图还是对变化的封装,尽量把可能变化的因素封装到最细,最小的逻辑单元之中,避免风险扩散

浙公网安备 33010602011771号