AngularJS:为什么要使用"工厂"当你说"服务"?

时间:2014-06-18 01:34:15

标签: angularjs service

这可能是一个愚蠢的问题,也许只是措辞。 我正在学习AngularJS并阅读大量文章,我看到了一个奇怪的事情。 很多人说“使用服务”,但在代码中他们使用“工厂”代替。

例如,这些问题: Pass variables to AngularJS controller, best practice?Angularjs sharing methods between controllers

为什么人们说'A'并使用'B',你不能只说“你可以使用工厂”吗? 我问这个问题是因为我看了很多次,这让我感到困惑......服务和工厂是两回事,对吗?

3 个答案:

答案 0 :(得分:1)

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

我也像你一样困惑,但由于相似性,我现在倾向于互换使用这个词。

答案 1 :(得分:0)

我认为单词互换性的原因归结为它们之间的相似性。在大多数对话的背景下,你对一个人所说的话不适用于另一个人。只要把它放在脑海中,更重要的是要了解其中的差异,这似乎有点不那么令人困惑。

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

confused about service vs factory

答案 2 :(得分:0)

工厂实际上是创造您的服务;无论如何,它最终成为一项服务。在AngularJS中,您有三种方式来声明服务;使用value,它几​​乎创建了一个静态服务实例,使用factory,它允许您在创建之前对其进行配置,并使用provider甚至可以覆盖依赖项。

请参阅我对您的问题的评论中的相关问题,您还可以找到有关AngularJS文档(https://docs.angularjs.org/guide/services)的详细信息,如果您查看其源代码,还可以查看更多信息。

为了使它变得非常简单,同样的原因是你不会在“构造函数”和“实例”中使用相同的单词,只是在另一个上下文中。