设计模式桥接
桥接模式
设计原则:遵循单一职责、迪米特、开闭原则,体现功能复用
常用场景:一个对象有多个维度的变化,需要将这些维度抽离出来,让其独立变化
使用概率:20%
复杂度:中高
变化点:维度的扩展与增加
选择关键点:是否可以将对象拆分成多个不相关的维度
逆鳞:无
主要思想:
桥接类 实际也相当于一个组合类,该类持有不同接口或抽象类的对象,使用时赋予不同的子类
说是桥就是一个连接
比如 接口1 实现类11 实现类12
接口2 实现类21 实现类22
桥持有接口1、2 那么就桥接实现11、21或11、22等
public interface MyInterface1 { public void do1(); } public interface MyInterface2 { public void do2(); } public class MyImplement11 implements MyInterface1{ @Override public void do1() { System.out.println("11"); } } public class MyImplement12 implements MyInterface1 { @Override public void do1() { System.out.println("12"); } } public class MyImplement21 implements MyInterface2{ @Override public void do2() { System.out.println("21"); } } public class MyImplement22 implements MyInterface2 { @Override public void do2() { System.out.println("21"); } } public class MyBridge { //桥接 接口1、2的实现类,赋值不同实现类,桥连接就改变了 private MyInterface1 interface1; private MyInterface2 interface2; public void dosomething(){ interface1.do1(); interface2.do2(); }; public void setInterface1(MyInterface1 interface1) { this.interface1 = interface1; } public void setInterface2(MyInterface2 interface2) { this.interface2 = interface2; } }