美文网首页
好莱坞原则 IoC 与 DI

好莱坞原则 IoC 与 DI

作者: 杰哥长得帅 | 来源:发表于2018-12-04 00:09 被阅读19次

IoC(控制反转)

在使用非 IoC 范式编程时,程序逻辑流程通常是由一个功能中心来控制。这个功能中心会调用各个可重用对象中的方法执行特定的功能

使用 IoC,这个 “中心控制” 的设计原则会被反转过来。调用者的代码处理程序的执行顺序,而程序逻辑则被封装在接受调用的子流程中

IoC 也被称为好莱坞原则,“不要给我们打电话,我们会打给你”

IoC 有几种不同的实现,包括工厂模式、依赖注入等

DI(依赖注入)

依赖注入是 IoC 的一种特定形态,主要好处有:

  • 松耦合:
    代码不再紧紧绑定到依赖项的创建上,而是使用从外部传入的对象

  • 易测性:
    可以把 mock 作为依赖项注入到对象中

  • 高内聚:
    代码可以专注于执行自己的任务,不用为载入和配置依赖性而分心

  • 可重用:
    别人想用你的 API,只需要注入他们定制的接口的你的实现类

  • 更轻盈:
    不需要跨层传递依赖项,可以在需要依赖项的地方直接注入

工厂模式的不足

  • 虽然不用传递依赖项,但是还要传递引用凭据(objectType),即工厂创建的类型
  • 还要调用 factory.getObject(objectType) 获取依赖项,达不到只关注自身职能的理想状态

相关文章

网友评论

      本文标题:好莱坞原则 IoC 与 DI

      本文链接:https://www.haomeiwen.com/subject/wyfpcqtx.html