Abstraction 抽象化角色
abstract class Abstraction {
private Implementor imp;
void request() {
this.imp.doSomething();
}
}
Implementor 实现化角色
interface Implementor {
void doSomething();
void doAnything();
}
RefinedAbstraction 修正抽象化角色
class RefinedAbstraction extends Abstraction {
public RefinedAbstraction(Implementor _imp) {
super(_imp);
}
// 所谓的“修正”就是子类重载
@Override
public void request() {
super.request();
super.getImp().doAnything();
}
}
ConcreteImplementor 具体实现化角色
class ConcreteImplementor1 implements Implementor {
void doSomething() {
// 实现业务逻辑
}
void doAnything() {
...
}
}
class ConcreteImplementor2 implements Implementor {
...
}
总结
桥梁模式就是父类提供了变化部分作为方法被子类或后代去重载实现。