版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44580977/article/details/96786257
首先,控制反转是Spring 框架为解决代码的耦合问题
耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。 耦合的强弱取决于模块间接口的复杂性、调 用模块的方式以及通过界面传送数据的多少。 模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。 模块间联系越多,其耦合性越强,同时表明其独立性越差( 降低耦合性,可以提高其独立 性)。 耦合性存在于各个领域,而非软件设计中独有的,但是我们只讨论软件工程中的耦合。
通俗讲就是,连个模块之间的联系程度,就如买卖中,原本是卖家和卖家,突然多了个中介在中介,这个就是降低耦合了。
/**
* 耦合代码:程序间的依赖关系
* 包括:
* 类之间的依赖
* 方法间的依赖
* 解耦:
* 降低程序间的依赖关系
* 实际开发中:
* 应该做到:编译期不依赖,运行时才依赖。
* 解耦的思路:
* 第一步:使用反射来创建对象,而避免使用new关键字。
* 第二步:通过读取配置文件来获取要创建的对象全限定类名
*/
//类之间的耦合
public class AccountServiceImpl implements IAccountService {
//这里就是存在类之间的耦合,
//这导致没有AccountDaoImpl就无法编译程序了,
private IAccountDao accountDao = new AccountDaoImpl();
}
//方法之间的耦合
public static void main(String[] args) throws Exception {
//1.mysql注册驱动
//这就是方法的耦合,
//同样没有这个类就无法编译报错了
DriverManager.registerDriver(newcom.mysql.jdbc.Driver());
}
控制反转(Inversion Of Contro)指的就是这中方式去创建类