为什么我应该在简单的对象配置上使用Angular的依赖注入?

克鲁格

Angular文档显示了一个示例,该示例@inject在您不注入类的时候在构造函数中使用值(配置对象)

https://angular.io/guide/dependency-injection#non-class-dependencies

我能够使它起作用,但是我不确定我是否理解此用例的意义。因为它不是创建实例的类-只是要读取的配置对象,所以为什么我不导入它并在需要的地方读取它。无论如何,我都必须导入该类,即使要将值注入构造函数中也是如此。

这是否只是为了确保该值在类开始构建时就可用,因为它在构造函数中?

我只是不确定我是否看到了DI的价值,并觉得我可能缺少了一些东西。

贡特·佐赫鲍尔(GünterZöchbauer)

DI主要是关于可测试性。您可以轻松覆盖测试中的提供程序。
如果直接访问值,则需要修改要测试的类或组件的代码,以自定义测试行为。

还有其他优点,例如能够在中央位置(您在其中指定提供程序的地方)配置应用程序以针对不同用例自定义应用程序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我应该在AWS的ElastiCache上使用简单队列服务(SQS)

为什么我们应该在Angular中的map()上使用subscribe()?

为什么我应该在ASP.Net应用程序中使用IoC容器(Autofac,Ninject,Unity等)进行依赖注入?

为什么我应该在获取时使用HttpClient?

为什么我应该在Flutter中使用Cards?

为什么我应该在32位版本上使用64位JDK?

为什么我不应该在ARMv6 +的系统内存上使用ioremap?

为什么在Java中我应该在null上使用(String [])null?

我什么时候应该在 '$this' 上使用 'self'?

为什么我应该在 Angular 订阅中使用带有管道的选择?

我应该在android中实现哪个依赖注入

为什么我应该在构造函数中使用对象的接口类型,而不是实际的类对象

我什么时候应该在常规线程上使用asyncio,为什么?它可以提高性能吗?

为什么我不应该在Java8中的Optional上使用基于身份的操作?

如果PyPy快6.3倍,为什么我不应该在CPython上使用PyPy?

为什么以及何时应该在C中使用指针到指针而不是简单的指针?

我应该在配置中添加什么给appId?

为什么Windows 8.1应该在我的“全名”出现的地方使用我的Hotmail地址?

什么时候以及为什么我们应该在角度使用View Encapsulation

为什么我不应该在Angular 2的组件中提供服务

为什么我应该在Fortran中使用“仅使用”

对于学校,我应该在12.04上安装什么?

为什么我们不应该在Java中使用受保护的静态

为什么我不应该在PHP中使用mysql_ *函数?

为什么我应该在sbt playframework项目中使用前端插件?

为什么我不应该在继承中使用平等?

为什么我们应该在线程中使用Join?

为什么我应该在MVP GWT项目中使用ClientFactory?

为什么我不应该在Android中使用System.out.println()