AngularJS : 当你说"services"时,为什么要使用"factory"?



这可能是一个愚蠢的问题,可能只是关于措辞。我正在学习AngularJS并阅读了很多文章,我看到了一个奇怪的现象。很多人说"使用一个服务",但在代码中他们用"工厂"代替。

为例,这些问题:传递变量到AngularJS控制器,最佳实践?, Angularjs在控制器之间共享方法

为什么人们说"A"而用"B",你就不能说"你可以用工厂"吗?我问这个问题是因为我看到过很多次,这让我很困惑……服务和工厂是两回事,对吧?

除了一个是新创建的而另一个不是之外,这两者之间确实没有什么区别。除此之外,它们都是单例的和可注入的。你也可以用同样的方式使用它们。

我也像你一样感到困惑,但由于相似,我现在倾向于交替使用这两个术语。

我认为这两个词可互换的原因归结为它们之间的相似性。在大多数对话的上下文中,你所说的关于其中一个的内容几乎不可能不适用于另一个。记住这一点,更重要的是了解它们之间的区别,这样看起来就不那么令人困惑了。

请参阅下面的问题,以获得关于差异的很好的解释(评论中也有其他很好的参考)。

不懂服务和工厂

工厂实际上是创建你的服务;它最终会成为一项服务。在AngularJS中,你有三种方式来声明服务;使用value,它几乎可以创建一个静态服务实例,使用factory,它可以让你在创建它之前配置它,使用provider,它甚至可以让你覆盖依赖关系。

查看我对你的问题的评论中的相关问题,你也可以在AngularJS的文档(https://docs.angularjs.org/guide/services)中找到详细信息,如果你查看他们的源代码,你会发现更多。

为了使它变得非常简单,这与您不会使用相同的词来表示"构造函数"one_answers"实例"的原因相同,只是在另一个上下文中。

相关内容

最新更新