1、桥接模式:使抽象接口与具体实现分离,从而使他们可以动态的变化;
2、桥接模式的参与者:
1)、抽象类接口(Abstraction);
2)、RefiedAbstraction扩充由Abstraction定义的接口;
3)、Implementor实现类接口,该接口不一定要与Abstraction抽象类接口一致(可以有多个的);
4)、ImplementorImp具体实现;
eg:
/**抽象接口**/
public abstract class AbstractionClass{
private Implementor implement;
public AbstractionClass(){}
public AbstractionClass(Implementor implement){
this.implement = implement;
}
public void fun();
}
/**扩充的抽象接口**/
public class RedifinedAbstraction extends AbstractionClass{
public RedifinedAbstraction(){
super();
}
public RedifinedAbstraction(Implementor implement){
super(implement);
}
public void fun(){};
public void add(){};
……
}
/**桥接接口**/
public interface Implementor{
public void fun1();
public void fun2();
……
}
/**桥接接口实现类**/
public class ImplementorImp{
public void fun1(){};
public void fun2(){};
……
}
上面例子展现了桥接模式将抽象与实现分离,二者可以单独变化互不影响;抽象部分通过引用的方式调用实现部分,运行时动态给抽象部分添加实现,而不是通过编译时使确定抽象与实现的依赖关系;当改变实现时,不会对原来的功能产生影响;