| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 对IoC的理解 -> 正文阅读 |
|
[Java知识库]对IoC的理解 |
IoC百度解释
简单的说:IoC就是将对象的创建与对象之间的调用这一过程交给Sping进行管理。Ioc的目的:降低耦合度。而IoC的底层就是通过xml解析、工厂模式、反射结合使用进行解耦操作。 IoC功能的简单理解程序设计的重要原则之一是要做到高内聚低耦合,什么是耦合呢? 就是程序之间的依赖程度 例如:
CURD依赖Statement对象的创建,Statement对象又依赖Connection连接,获取Connection连接又必须先注册驱动。这就是耦合。 现在我有Dao层与Service层两个模块 Dao:
Service:
我要在UserService中调用Dao层中UserDao的add方法,我要怎样调用?? 在我还没学习SpringIoC之前,对于这个问题会产生大大疑惑,这不很简单吗,直接new,然后直接调用不就行了吗,然后这样对UserService的改写如下:
<(^-^)> 嗯,很满意,但是这样写,UserService就会过度依赖于UserDao,存在较高的耦合 。此时就需要设计模式方面的芝士(知识)了。工厂模式,因此代码可以改为: Dao:
Factory:
Service:
UserService通过UserDaoFactory创建UserDao实例,从而降低了UserServie与UserDao之间的耦合,这个过程称之为解耦。然而这种方式并不是最优的,因为UserDaoFactory与UserDao又出现了新的耦合。因此引出了IoC解耦 IoC的解耦过程:配置XML---->通过工厂解析XML文件,使用反射生成实例。 因此可以改为: XML配置文件
Dao
Factory
Service
IoC通过XMl与反射,降低了UserDao与UserDaoFactory之间的耦合,使得UserDaoFactory对UserDao的依赖降低,当UserDao发生一些改变,只需改变XML配置文件,而不需要对UserDaoFactory做出改变。 至此,对于IoC有了初步了解。撒花,撒花,真厉害,王水水。。。。。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 3:51:35- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |