1 IOC介绍

我们知道在面向对象设计的软件系统中,它的底层都是由多个对象构成的,各个对象之间通过相互合作,最终实现系统的业务逻辑。

1.png

如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在表盘上产生正确的时间。上图中描述的就是这样的一个齿轮组,它拥有多个独立的齿轮,这些齿轮相互啮合在一起,协同工作,共同完成某项任务。我们可以看到,在这样的齿轮组中,如果有一个齿轮出了问题,就可能会影响到整个齿轮组的正常运转。

齿轮组中齿轮之间的啮合关系,与软件系统中对象之间的耦合关系非常相似。对象之间的耦合关系是无法避免的,也是必要的,这是协同工作的基础。现在,伴随着工业级应用的规模越来越庞大,对象之间的依赖关系也越来越复杂,经常会出现对象之间的多重依赖性关系,因此,架构师和设计师对于系统的分析和设计,将面临更大的挑战。对象之间耦合度过高的系统,必然会出现牵一发而动全身的情形。

耦合关系不仅会出现在对象与对象之间,也会出现在软件系统的各模块之间,以及软件系统和硬件系统之间。如何降低系统之间、模块之间和对象之间的耦合度,是软件工程永远追求的目标之一。为了解决对象之间的耦合度过高的问题,软件专家Michael Mattson 1996年提出了IOC理论,用来实现对象之间的解耦,目前这个理论已经被成功地应用到实践当中。

1996年,Michael Mattson在一篇有关探讨面向对象框架的文章中,首先提出了IOC 这个概念。IOC是Inversion of Control的缩写,多数书籍翻译成“控制反转”,简单来说就是把复杂系统分解成相互合作的对象,这些对象类通过封装以后,内部实现对外部是透明的,从而降低了解决问题的复杂度,而且可以灵活地被重用和扩展。

IOC理论提出的观点大体是这样的:借助于“第三方”实现具有依赖关系的对象之间的解耦。如下图:

2.png

如上图所示,由于引进了中间位置的“第三方”,也就是IOC容器,使得A、B、C、D这4个对象没有了耦合关系,齿轮之间的传动全部依靠第三方了,全部对象的控制权全部上缴给第三方IOC容器,所以,IOC容器成了整个系统的关键核心,它起到了一种类似粘合剂的作用,把系统中的所有对象粘合在一起发挥作用,如果没有这个粘合剂,对象与对象之间会彼此失去联系,这就是有人把IOC容器比喻成粘合剂的由来。

2 项目规模

类的总数:26个

3 项目亮点

(1)Context上下文编程技巧的运用
(2)工厂模式的使用
(3)反射的使用
(4)自定义异常的用法
(5)xml文件的解析
(6)dtd文件的校验
(7)IOC思想的深刻体会

4 项目截图

3.png

5 项目学习时间

(1)要求每天抽出20-30分钟学习项目代码,需要7天时间。
(2)代码学习完之后,需要再拿出7天的时间进行复习。
(3)项目总计学习时间为14天。

6 项目学习效果验收

项目的学习效果评估采用学分制,满分为14分。

每完成一天,并有相关学习笔记输出,则累加1分。
推出学分制的目的是为了检测学习效果。累积没有完成14分,则不认为已经掌握此项目。

7 项目参与

本项目仅限网站金主。金主是网站基金的主要来源。网站基金是保证网站能够长期运行的基础设施。

标签: none

[网站公告]-[2024年兼职介绍]


添加新评论