我们都使用过JDBC,JDBC就使用的是桥接模式。DriverManager无论传入的是什么类型的Driver都能通过传入的Driver获取数据库的连接。
实际上桥接模式就是把抽象部分和实现部分分离,是的他们都能独立的变化
我们就以销售员卖产品为例:
销售的是产品,必定要有产品类
public interface Production {
void beProducted();
void beSaled();
void beBuyBySaleMan();
}
具体产品:
public class Jacket implements Production {
@Override
public void beProducted() {
System.out.println("夹克被生产了");
}
@Override
public void beSaled() {
System.out.println("夹克被销售卖掉了");
}
@Override
public void beBuyBySaleMan() {
System.out.println("夹克被销售买进了");
}
}
public class Computer implements Production {
@Override
public void beProducted() {
System.out.println("电脑被生产了");
}
@Override
public void beSaled() {
System.out.println("电脑被销售卖掉了");
}
@Override
public void beBuyBySaleMan() {
System.out.println("电脑被销售买进了");
}
}
然后是salesMan:
/**
* 销售人员
*/
public class SalesMan {
public void saleProduct(Production production){
production.beProducted();
production.beBuyBySaleMan();
production.beSaled();
}
}
测试代码:
public class BridgeTest {
public static void main(String[] args) {
SalesMan salesMan = new SalesMan();
salesMan.saleProduct(new Jacket());
salesMan.saleProduct(new Computer());
}
}
这就是桥接模式,把抽象和具体实现分离,salesman只要知道他要卖产品,但是卖什么产品他不要去关心,具体产品被买被卖然后被销售都是自己实现,销售员只要调用抽象产品相应的方法就好