耦合:程序间的依赖关系
--类之间的依赖关系
--方法间的依赖关系
解耦:降低程序间的依赖关系
实际开发中:编译器不依赖,运行时依赖
感受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。即做到了编译时不依赖,运行时依赖。
因篇幅问题不能全部显示,请点此查看更多更全内容