Rumah  >  Artikel  >  Java  >  java设计模式:桥接模式抽象化与实现化解耦的理解

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

php是最好的语言
php是最好的语言asal
2018-08-01 14:35:112471semak imbas

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

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

UML类图:

1.jpg

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设计模式中关于桥接模式的详解

JavaScript设计模式系列六:桥接模式

相关视频:

JavaScript设计模式完整视频教程

Atas ialah kandungan terperinci java设计模式:桥接模式抽象化与实现化解耦的理解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn