工厂 VS 服务一劳永逸

根据定义:

服务基本上是构造函数。他们使用’this’关键字。

工厂是简单的功能因此返回一个对象。

引擎盖下:

工厂内部调用提供者功能。

服务内部调用工厂功能。

辩论:

工厂可以在返回对象文字之前运行代码。

但与此同时,还可以编写服务以返回对象文字并在返回之前运行代码。虽然这是有效的,因为服务被设计为充当构造函数。

实际上,JavaScript 中的构造函数可以返回他们想要的任何内容。

那么哪一个更好?

服务的构造函数语法更接近 ES6 的类语法。迁移很容易。

摘要

总而言之,提供商,工厂和服务都是提供商。

当你的提供程序中所需的全部是$ get() 函数时,工厂是提供程序的特例。它允许你用更少的代码编写它。

当你想要返回新对象的实例时,服务是工厂的特例,具有编写较少代码的相同好处。

StackOverflow 文档