设计原则学习笔记
设计模式学习笔记
作用
【Bridge|Bridge 桥接模式】以持有的方式实现接口,避免继承太多导致扩展性变差,同时实现代码的复用。
Java是单继承的,所有如果有多个接口要实现的话大多接口需要用接口(此接口非彼接口)实现,倒置代码不能复用,扩展一个接口的实现需要把其他接口的实现再写一遍。桥接模式很好的解决了这个问题
类图
文章图片
桥接模式 Abstrction#Operation调用了Implementor#OperationImp,达到了代码复用的目的。无论是Abstration还是Implementor想扩展一个实现,都不需要重写对方的方法
Java实现
public interface Implementor {
void OperationImpl();
}
public class ConcreteImplementor implements Implementor {
@Override
public void OperationImpl() {
//todo do something
}
}
public abstract class Abstraction {
public void Operation() {
Implementor implementor = new ConcreteImplementor();
implementor.OperationImpl();
}
}
public class RefinedAbstraction extends Abstraction {
}
在Java中由于继承的侵入性太高,所有有时候即使完美的符合is-a的关系也不实用继承而是实用其他方法实现,桥接模式就是一种解决方案。
Android源码中的应用
- ImageView与Drawable