在Angularjs中使用哪一个:工厂,服务和提供商?

时间:2015-05-13 12:13:51

标签: angularjs

嗨,我是Angularjs的新手。我正在阅读有关Angular服务的文章。我已阅读以下内容 what-is-difference-between-factory-service-and-providerservice-vs-provider-vs-factory。对我来说,似乎他们只是达到同一目标的不同方式(如果我错了,请纠正我。)现在我想知道他们都有同样的目的,哪个是想法使用并被视为最佳实践?

2 个答案:

答案 0 :(得分:3)

听起来问题是何时使用哪个。首先,重要的是要注意它们都是提供者。从provider开始,每个版本都是另一个更专业的版本。 factoryprovider的专用版本。 value和服务又是factory的专用版本。

constantvalue是彼此的专用版本。因为provider位于顶部,所以可以做所有其他提供商所做的事情,你可以只使用提供商。但是你会编写很多不必要的代码。

链中的每个专业提供商,如果你可以使用它将允许你用更少的代码完成同样的事情。所以你可以说最好的做法是使用最完整的供应商来完成你想要的东西。

这是一张高级图片,显示我的意思:

__FILE__

以下是图片来自博客文章的链接,为您提供了其他示例:

http://www.simplygoodcode.com/wp-content/uploads/2015/11/angularjs-provider-service-factory-highlight.png

答案 1 :(得分:2)

没有最好的做法,没有人会告诉你一个比另一个好(服务对工厂)。

如果您需要在运行时配置服务,请使用提供程序(例如,配置路由器)。

何时使用工厂或何时使用服务,它们是相同的。

Factory具有最容易理解的语法(使用显示模块模式),因此这是最常见的选择。

另一方面,服务现在更有用"因为它们使用与Angular 2服务相同的语法,所以如果您计划某天迁移,现在使用服务将有助于过渡。