控制反转与 依赖注入、传统设计原则的比较


theme: cyanosis

highlight: an-old-hope

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情

控制反转的概念

IOC是面向编程中的一个设计原则,用来降低程序代码之间的一个耦合度。

控制反转和传统程序设计原则:

传统面向对象程序设计原则

在传统的面向对象编程中,获取对象的方式是用new关键字主动创建一个对象,也就是说应用程序掌握着对象的控制权。 - 举例: 当我们使用new创建了一个类,这个类依赖于某一个类。比如商品详情类依赖商品类。那么,我们在业务逻辑类中就应该先创建商品类和商品详情类,再将商品详情类主动注入到商品类。

IoC控制反转

IoC控制反转机制是指对象由IoC容器统一管理,当程序需要使用对象时,可以直接从IoC容器中获取。这样对象的控制权就从应用程序转移到了IoC容器,IoC设计原则借助于IoC容器实现具有依赖关系对象之间的解耦,各个对象类封装之后,通过IoC容器来关联这些对象类。 - 举例: 我们在IoC容器中创建一个A类,再查看该类是否有依赖对象要注入,如果有B类需要注入,则先创建B类,然后注入到A类。有IoC容器来管理这些对象的生命周期。当程序需要使用对象时,就可以直接获取了。因此在业务逻辑类就是直接从IoC容器中获取商品类。

依赖注入和控制反转:

依赖注入(DI)

依赖注入就是由IoC容器在运行期间动态的将某种依赖资源注入对象之中。 - 举例: 将对象B注入(赋值)给对象A的成员变量。依赖注入的基本思想是:明确地定义组件接口,独立开发各个组件,然后根据组件的依赖关系组装运行

比较

依赖注入和控制反转就是从不同角度来看待一件东西。 - 依赖注入是从应用程序的角度描述,即应用程序依赖IoC容器创建并注入它所需要的外部资源; - 控制反转时IoC容器的角度描述,由IoC容器反向地像应用程序诸恶u应用程序所需要地外部资源。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值