java 抽象解耦_java设计模式:桥接模式抽象化与实现化解耦的理解

桥接模式:将抽象部分与他的实现部分分离,这样抽象化与实现化解耦,使他们可以独立的变化。

通过桥接(接口)将抽象部分和实现部分解耦,桥接是一个接口,实现方继承这个接口,抽象方在抽象类中调用接口中的方法指向实现方。这样实现方通过实现桥接口进行单方面扩展,而抽象方通过继承抽象类进行单方面扩展,两者通过桥接口调用,而接口不受双方扩展的影响。

UML类图:

java 抽象解耦_java设计模式:桥接模式抽象化与实现化解耦的理解_第1张图片interface Driver {

public void connect();

}

class MysqlDriver implements Driver {

@Override

public void connect() {

System.out.println("连接Mysql数据库");

}

}

class OracleDriver implements Driver {

@Override

public void connect() {

System.out.println("连接Oracle数据库");

}

}

//抽象类

abstract class Bridge {

private Driver driver;

public void connect() {

driver.connect();

}

public void setDriver(Driver driverTemp) {

this.driver = driverTemp;

}

public Driver getDriver() {

return this.driver;

}

}

//实现类

class MyBridge extends Bridge { }

//测试类

public class BridgeTest {

public static void main(String[] args) {

Bridge mysqlBridge = new MyBridge();

Driver mysqlDriver = new MysqlDriver();

mysqlBridge.setDriver(mysqlDriver);

mysqlBridge.connect();

OracleDriver oracleDriver = new OracleDriver();

mysqlBridge.setDriver(oracleDriver);

mysqlBridge.connect();

}

}

桥接模式是有方向性的,桥绑定的一方是被调用者,属于被动方,抽象方属于主动方。

桥接模式降低的代码的耦合度,提高的系统的可扩展性,实现细节透明化。但是桥接模式的引入加大了系统的理解和设计难度

相关文章:

相关视频:

你可能感兴趣的:(java,抽象解耦)