根据这个问题:
angular.service 与 angular.factory
服务由 angular 使用 new 关键字创建,表示new
返回对象的实例。
例如:
app.service('helloWorldService', function() {
this.hello = function() {
return "Hello World"; };
}
);
但是,对于工厂,它们不是。
这意味着开发人员可以选择创建新实例(通过使用关键字new
)——因此,我假设它为什么称为工厂。
我的问题是:
为什么 Angular 开始创建一个新的服务实例?
我同意服务应该是单例的,它们是,但是创建返回函数的新实例有什么意义呢?对于服务来说,如果 Angular 只返回声明的函数不是更好吗——就像他们对工厂所做的那样。
这对服务不是更有意义吗?
我问的原因是因为我在抽象层上创建服务,但我不确定我是否真的应该在工厂 API 上使用服务 API,只是因为创建声明函数的新实例似乎有点毫无意义,而且矫枉过正=\