Ich habe viel gearbeitet Angular.js
und finde es insgesamt ein interessantes und leistungsfähiges Framework.
Ich weiß, dass es viele Diskussionen über Dienstleistungen vs. Fabriken vs. Anbieter vs. Werte gegeben hat, aber ich bin immer noch ziemlich verwirrt darüber, was a Factory
ist.
Factory wurde in anderen StackOverflow-Diskussionen wie folgt definiert:
Fabriken
Syntax: module.factory( 'factoryName', function );
Ergebnis: Wenn Sie factoryName als injizierbares Argument deklarieren, erhalten Sie den Wert, der durch Aufrufen der an module.factory übergebenen Funktionsreferenz zurückgegeben wird.
Ich finde diese Erklärung sehr schwer zu verstehen und sie verbessert nicht mein Verständnis dafür, was eine Fabrik ist.
Würde jemand irgendwelche Erklärungen oder Beispiele aus der Praxis zu teilen , was genau ein Factory
ist und warum Sie es anstelle einer verwendet werden soll Service
,Provider
oder andere?
Aktualisieren
A service
enthält einen Verweis auf ein beliebiges Objekt .
A factory
ist eine Funktion, die ein beliebiges Objekt zurückgibt
A provider
ist eine Funktion, die eine beliebige Funktion zurückgibt
- Puh -
quelle
Factories
(oben zitiert) etwas verwirrend war. Einige der Antworten unten reduzieren sichFactories
auf etwas, das selbst ich verstehen kannAntworten:
Soweit ich weiß, sind sie alle ziemlich gleich. Die Hauptunterschiede sind ihre Komplexität. Anbieter können zur Laufzeit konfiguriert werden, Fabriken sind etwas robuster und Services sind die einfachste Form.
Schauen Sie sich diese Frage an AngularJS: Service vs Provider vs Factory
Auch dieser Kern kann hilfreich sein, um die subtilen Unterschiede zu verstehen.
Quelle: https://groups.google.com/forum/#!topic/angular/hVrkvaHGOfc
jsFiddle: http://jsfiddle.net/pkozlowski_opensource/PxdSP/14/
Autor: Pawel Kozlowski
quelle
Provider > Factory > Service > Value
?Ein wesentlicher Unterschied, den ich sehe, ist, dass Sie benutzerdefinierten Code in der Fabrik ausführen können. In einem Dienst wird jedoch nur ein Objekt erstellt.
quelle
Meine zwei Cent zu diesem Thema. Ich bin ein sehr sehr Neuling und habe gerade Verständnis für Angular JS und dies war eines der Dinge, die mich sehr verwirrten und daher habe ich es etwas genauer studiert. Ich habe mir Notizen gemacht, um Interviews zu geben, und dies kann für andere nützlich sein.
quelle
Services sind meist Objekte, in denen Sie die Konstruktorklasse des Objekts beschreiben. Irgendwo tief im Framework wird die Funktion Object.create () aufgerufen. Anschließend können Sie einen Dienst verwenden, indem Sie sein Objekt und seine Methoden mithilfe eines Controllers aufrufen. Factory hingegen erstellt standardmäßig kein Objekt und erfordert daher, dass Sie den gesamten Objektspeicherort zurückgeben, sobald Sie alle Attribute und Methoden definiert haben.
quelle