菜鸟教程链接:桥接模式
概念
桥接模式是利用一个作为桥接的接口,将抽象化与实现化解耦,使两者可以独立变化,并且自由组合秤不同的效果。简单的示意图如下:
通过将接口注入到抽象类中,作为抽象类的成员变量,即可通过该接口将抽象类的不同实现与接口的不同实现桥接起来,形成多样自由的组合。
优缺点
优点:
- 扩展性高,灵活
- 抽象和实现完美分离
缺点:
- 对系统设计的要求更加复杂
适用场景
业务对象具有多种组合,且组合的能力与属性可抽象出具体的接口与父类
示例代码
如菜鸟教程示例:
抽象出来的属性作为抽象父类:
public abstract class Shape {
protected DrawAPI drawAPI;
protected Shape(DrawAPI drawAPI){
this.drawAPI = drawAPI;
}
public abstract void draw();
}
抽象出来的能力作为桥接接口:
public interface DrawAPI {
public void drawCircle(int radius, int x, int y);
}
通过使用不同桥接接口实现类去构造shape的子实现类,即可形成桥接的多种组合。概念比较简单,平常开发使用也很多,不再赘述。