AngularJS
サービスとファクトリの区別
サーチ…
ファクトリーVSサービス一度限りのサービス
定義により:
サービスは基本的にコンストラクタ関数です。彼らは 'this'キーワードを使用します。
ファクトリは単純な関数なので、オブジェクトを返す。
フードの下:
ファクトリは内部的にプロバイダ機能を呼び出します。
サービスは内部的にファクトリ関数を呼び出します。
ディベート:
ファクトリは、オブジェクトリテラルを返す前にコードを実行できます。
しかし同時に、サービスはオブジェクトリテラルを返すように書かれ、返される前にコードを実行することもできます。サービスはコンストラクタとして機能するように設計されているので、それは反対の生産性です。
実際、JavaScriptのコンストラクタ関数は、必要なものを返すことができます。
だからどちらが良いですか?
サービスのコンストラクタ構文は、ES6のクラス構文に近いものです。移行は簡単です。
概要
要約すると、プロバイダ、ファクトリ、サービスはすべてプロバイダです。
ファクトリは、プロバイダで必要なものが$ get()関数である場合、プロバイダの特別なケースです。少ないコードで書くことができます。
サービスは、新しいオブジェクトのインスタンスを返すときに、ファクトリの特別なケースです。コードを書くことと同じ利点があります。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow