1. 什么是耦合
1.耦合:耦合就是程序之间的依赖程度,就是上层代码对下层代码的依赖程度
2. 依赖程度越高,耦合度越高,依赖程度越低,耦合度越低。
举个例子:
下面的代码,在客户端修改数据库中的数据,当数据库改变的时候,就需要重新实例化对应操作数据库的类对象,在客户端需要改动的代码太多,耦合度非常高
2. 降低耦合度
1. 可以发现,三个数据库类中的修改方法格式是相同的,只是语句不同
2. 此时可以定义出一个标准(提取相同的方法),让操作数据库的类都去按照标准开发
3. 定义标准也就是定义一个接口,让操作数据库的类去实现接口(标准)
当定义标准之后,客户端操作不同的数据库,只需要修改对应的数据库实现类名就可以了,此时耦合依旧存在的,但是已经大大降低了。
再需要降低耦合度就要用到工厂设计模式,再进一步降低耦合度,就需要使用到IOC容器(控制反转容器)
public class Test {
public static void main(String[] args) {
//操作Oracle数据库
IDAO idao = new OracleDAOImpl();
idao.update();
//
// //操作Mysql数据库
// IDAO idao = new MysqlDAOImpl();
// idao.update();
//
// //操作SqlServer
// IDAO idao = new SqlServerDAOImpl();
// idao.update();
}
}
-------------------------------------------
/**
* 操作Oracle数据库
*/
public class OracleDAOImpl implements IDAO{
@Override
public int update() {
System.out.println("修改Oracle数据库中的数据");
return 0;
}
}
----------------------------------
/**
* 操作Mysql数据库
*/
public class MysqlDAOImpl implements IDAO {
@Override
public int update() {
System.out.println("修改Mysqlr中的数据");
return 0;
}
}
----------------------------------
/**
* 操作SqlServer
*/
public class SqlServerDAOImpl implements IDAO {
@Override
public int update() {
System.out.println("修改SqlServer中的数据");
return 0;
}
}