0
点赞
收藏
分享

微信扫一扫

【JDBC-04】解决耦合问题

木匠0819 2022-04-14 阅读 50
javamysqlsql

文章目录

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;
    }
}
举报

相关推荐

0 条评论