依赖注入 – 依赖注入如何与仅使用全局变量不同?

前端之家收集整理的这篇文章主要介绍了依赖注入 – 依赖注入如何与仅使用全局变量不同?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在阅读很多关于依赖注入的思想,这可能是一些非常先进的程序编程方式,但是我看不到只是避免全局状态的区别,因为没有全局状态,那么你被迫通过所有的依赖对象

有人可以向我解释,因为我认为我可能会错过关于依赖注入是什么的观点?

依赖注入是关于去耦码.

当您通过传递参数避免使用全局变量时,您将解耦代码.您正在删除代码全局变量的依赖关系.

您可以将此解耦推广到不仅仅是避免全局变量.采取以下代码

def foo(arg):
   return ClassBar(arg).attr

foo(1)

函数foo依赖于或紧密耦合到ClassBar.原因不太好,你会被迫更新foo的时候:

>构造ClassBar变化的参数
>你想把ClassBar改成别的东西
>另一段代码想从另一个对象访问attr

如果代码被重写:

def foo(instanceBar):
   return instanceBar.attr

foo(ClassBar(1))

您已将联机推送到呼叫者.这从foo的定义中删除了依赖关系.在上述情况下,您无需更新foo.您的代码越多,解耦,您需要做的更少的代码更改.

猜你在找的设计模式相关文章