描述
桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了
思想
多个目标类实现同一个接口,定义一个桥接类,内有一个目标接口类型的变量,该变量对象就是对目标类的桥接;
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| interface Source { public void name(); }
class Animal implements Source { @Override public void name(){ Test.printMsg("Animal.name"); }; } class Person implements Source { @Override public void name(){ Test.printMsg("Person.name"); }; }
abstract class Bridge { private Source source; public void name(){ source.name(); } public Source getSource(){ return source; } public void setSource(Source source){ this.source = source; } } class MyBridge extends Bridge{ public void name(){ getSource().name(); } }
public class Test { public static void printMsg(String msg){ System.out.println(msg); } public static void main(String[] args){ Bridge bridge = new MyBridge(); Source animal = new Animal(); bridge.setSource(animal); bridge.name(); Source person = new Person(); bridge.setSource(person); bridge.name(); } }
|