(一) 什么是程序的耦合


程序的耦合是程序之间的关联性,也就是多个类的联系是否紧密,多个对象之间的关系是否密切。

生活中的案例:


你的房子里面有窗子,那么房子和窗子就有了关联


耦合度是松还是紧就看你的关联是强还是弱,也就是修改的代价,比如你窗子是扣死在墙里的那么你修


改窗子就必须修改墙 这就比较紧密了,反应在程序上就是耦合度高,不利于程序的扩展和维护。


但是如果你窗子是按照某种规格的 可以自由拆装的,那么修改的代价就小,耦合度也就低了,反应在程


序上就是耦合度低,利于程序的扩展和维护。


我们写程序的目标就是 高内聚 低耦合!


这样修改起来 就不会有太多的联系,不用改一个地方其他的都要修改。


(二) 解决程序耦合的思路


1 编译不依赖,运行时才依赖


当我们讲解 jdbc 时,是通过反射来注册驱动的,代码如下 :


此时的好处式,我们的类中在编译阶段不再需要具体的驱动类,就算删除 mysql 的驱动 jar 包,依然可以


通过编译。在运行阶段才会依赖驱动包。实际开发当中,我们应该做到编译不依赖,运行时才依赖。


上述代码产生的新问题, mysql 驱动类的全限定类名作为一个字符串 java 类中是写死的,一旦发生改


变,还需要修改源码。


Class 
 . 
 forName 
 ( 
 "com.mysql.jdbc.Driver" 
 ); 
 // 
 使用的驱动类是指定了一个字符串 
 使用配置文件结合反射就可以解决上述问题。


2 使用工厂模式解耦合


在实际开发中我们可以把三层的对象都使用配置文件配置起来,当启动服务器应用加载的时候,让一个


类中的 方法通过读取配置文件,把这些对象创建出来并 存起来 。在接下来的使用的时候,直接拿过来用


就好了。


那么,这个读取配置文件,创建和获取三层对象的类就是工厂。