工厂 VS 服务一劳永逸
根据定义:
服务基本上是构造函数。他们使用’this’关键字。
工厂是简单的功能因此返回一个对象。
引擎盖下:
工厂内部调用提供者功能。
服务内部调用工厂功能。
辩论:
工厂可以在返回对象文字之前运行代码。
但与此同时,还可以编写服务以返回对象文字并在返回之前运行代码。虽然这是有效的,因为服务被设计为充当构造函数。
实际上,JavaScript 中的构造函数可以返回他们想要的任何内容。
那么哪一个更好?
服务的构造函数语法更接近 ES6 的类语法。迁移很容易。
摘要
总而言之,提供商,工厂和服务都是提供商。
当你的提供程序中所需的全部是$ get()
函数时,工厂是提供程序的特例。它允许你用更少的代码编写它。
当你想要返回新对象的实例时,服务是工厂的特例,具有编写较少代码的相同好处。