spring-core-2-15 | IoC容器的职责:IoC除了依赖注入,还涵盖哪些职责呢?

IoC(Inversion of Control)容器的主要职责包括解耦组件执行与实现,使模块专注于其设计功能,解放模块对其他系统实现的假设,防止替换模块时产生副作用。它通过依赖注入和依赖查找来管理组件的生命周期,并允许外部化配置,管理如JavaBeans等托管资源。

IoC 容器的职责

维基百科

• 维基百科(https://en.wikipedia.org/wiki/Inversion_of_control)

在Overview 小节中提到:

“Inversion of control serves the following design purposes:
IoC通常有以下几个设计目的:

• To decouple the execution of a task from implementation.
实现与执行的目的之间要产生解耦.

• To focus a module on the task it is designed for.
关注于模块,和任务赋予模块的功能. 就是说要关注于你设计上的最终目标, 而不是具体实现.

• To free modules from assumptions about how other systems do what they do and instead rely on contracts.
释放模块. 系统知道模块的运行方式但是不依赖某个契约.
比如 Java EE 的 JNDI, 尽管实现了组件的实现和组件进行解耦, 但是还是要依赖于像 lookup 这样的接口, 这就是契约了.

• To prevent side effects when replacing a module.
避免当模块取消是产生的边缘效应/副作用, 这里不太理解, 猜一下是当发生依赖变更时, 会产生一些副作用, 那么IoC的话能减少这个影响.

Inversion of control is sometimes facetiously referred to as the “Hollywood Principle:
Don’t call us, we’ll call you”.”
好莱坞原则: Don’t call us, we’ll call you.

小马哥总结

通用职责

依赖处理
依赖查找
依赖注入
生命周期管理
容器
托管的资源(Java Beans 或其他资源)
配置
容器
外部化配置
托管的资源(Java Beans 或其他资源)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值