我经常在Angular 2中使用依赖注入来提供数据服务和数据对象的内存缓存。对于每种用途我都有一个可注射的,这是很自然的。随着我的项目的发展,这个问题出现在我的脑海中:
如果我将所有可注入的函数和参数放在一个大类中,并将其注入到我所有的组件中,性能会受到怎样的影响?
这可以说明我的意思:
假设我有可注入的A、B和C,以及组件a、b和c (可能还有更多,但你明白我的想法)。现在,A被注入到a;B被注入到b,C被注入到c。如果我将所有可注入文件组合到ABC中,并将其注入到组件a、b、c中,这会如何影响我的性能?
发布于 2017-01-11 16:04:45
如果我将所有可注入的函数和参数都放在一个大类中,并将其注入到我所有的组件中,性能会受到怎样的影响?
如果您使用AoT,那么这将没有可测量的效果,因为AoT为DI生成静态代码。
如果您使用platform_dynamic (没有AoT),那么可能会有一点不同。
为了让您的方法有意义,您需要在有和没有更改的情况下进行基准测试,以获得关于这是否对性能有任何影响的严肃反馈。
通常,优先考虑代码质量而不是性能,除非您能证明某个特定代码会损害性能(不要过早优化)。
如果您可以更改代码,使单个服务器请求比以前更少,那么您节省的时间可能会比所有DI所需的时间加起来还要多。
发布于 2017-01-11 19:53:35
抛开性能不谈,包含所有依赖项的保护伞对象还有另一个问题。
它可能会降低代码的可读性,因为分析和确定组件的外部依赖项会变得有点困难。我们需要查看代码和引用,以了解组件的依赖关系。我认为这不是一个理想的实现。
https://stackoverflow.com/questions/41585558
复制相似问题