0%

桥接模式

描述

桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的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();

//调用第1个对象
Source animal = new Animal();
bridge.setSource(animal);
bridge.name();
//调用第2个对象
Source person = new Person();
bridge.setSource(person);
bridge.name();

}
}