对spring 反转控制(Inversion of Control )

    Spring 的核心特性之一是IoC,反转控制。这个概念太难理解,读完Spring reference手册关于IoC章节后依然只知道Spring 中IoC的是通过 Dependency Injection实现的。依赖注入很好理解,就是如果A对象需要引用B对象,那么在创建A对象实例时自动创建B对象,并把B对象的引用付给A。  但想来想去这和反转控制有什么联系啊。Spring reference中有一个解释Ioc的比喻:好莱坞规则——Don't call me,I will call you.

我默念了好多遍终于头脑里有点亮光。

     可以这么理解IoC中的C-control, 如果A 调用 B的方法:A是调用这个动作的发起者、B为响应者 ,即为A控制B。在好莱坞规则里,把演员Call导演,变为了导演Call演员,其实都是完成同一件事报名演出,只是动作发起人变了。这即为反转控制。

     其实在面向对象设计中不乏反转控制的例子,比如Observer观察者模式中。A对象在B对象出现某种变化时执行一个动作,这个动作发起者是A。Observer模式中通过注册、监听、回调等方式,把动作发起者变成了B,变成了由B调用A的方法。

    那IoC有什么好处?

    thinking...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值