耦合
在软件系统中,层与层之间存在依赖关系,我们称之为耦合。
我们系统架构设计的一个原则是:高内聚低耦合。层内部的组成应该是高度聚合的,而层与层之间的关系应该是低耦合的。
在上一篇中我们引入了三层架构,原代码是这样的:
可以看出Controller层与Service层,Service层与Dao层存在着耦合。
解耦
1. 首先先在applicationContext.xml中配置依赖关系
2. 创建接口BeanFactory,然后创建ClassPathXmlApplicationContext实现BeanFactory并重写getBean方法。
3. 将DispatcherServlet中解析applicationContext.xml获取bean的代码移到ClassPathXmlApplicationContext中。
4. 根据xml配置组装依赖关系
5. 对DispatcherServlet进行代码优化,将原先解析xml获取bean改为从BeanFactory获取。
总结
原先代码中,依赖关系是程序员主动获取的,bean的生命周期由程序员来控制(因为java虚拟机的存在,不用我们考虑)。
代码优化后,程序的依赖关系由容器来帮我注入进去,生命周期的控制权也从程序员转移到了BeanFactory中。
这便是控制反转(IOC)与依赖注入(DI),在后面的Spring框架章节,还会对这一块深入学习。
© 版权声明
THE END
暂无评论内容