感受程序間的耦合
耦合:程序間的依賴關係
--類之間的依賴關係
--方法間的依賴關係
解耦:降低程序間的依賴關係
實際開發中:編譯器不依賴,運行時依賴
感受eg:
準備依賴
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
</dependencies>
jdbc操作:
在之前的獲取驅動時
//1、註冊驅動
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
很顯然這是直接依賴的驅動類的,若是註釋掉mysql依賴,則會報錯Error,java:程序包com.mysql.jdbc不存在.
當時用反射來操作時
Class.forName("com.mysql.jdbc.Driver");
則報如下異常
Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
可以對比看出,都沒有mysql依賴時,使用了反射來操作時,報錯由Error變爲Exception。即做到了編譯時不依賴,運行時依賴。