桥接模式
# 概念
将 ** 抽象和实现解耦,** 使得两者可以独立地变化。
# 使用场景
- 不希望或不适用使用继承的场景。
- 接口或抽象类不稳定的场景。
- 重用性要求较高的场景。
# 结构
*Abstraction—— 抽象化角色:* 它的主要职责是定义出该角色的行为,同时保存一个对实现化角色的引用,该角色一般是抽象类。
*Implementor—— 实现化角色:* 它是接口或者抽象类,定义角色必需的行为和属性。
*RefinedAbstraction—— 修正抽象化角色:* 它引用实现化角色对抽象化角色进行修正。
*ConcreteImplementor—— 具体实现化角色:* 它实现接口或抽象类定义的方法和属性。
# 代码示例
public abstract class Abstraction {
//定义对实现化角色的引用
private Implementor imp;
//约束子类必须实现该构造函数
public Abstraction(Implementor _imp){
this.imp = _imp;
}
//自身的行为和属性
public void request(){
this.imp.doSomething();
}
//获得实现化角色
public Implementor getImp(){
return imp;
}
}
上次更新: 2022/12/31, 03:04:26