Wykonałem dużo pracy Angular.js
i ogólnie uważam, że jest to interesujący i potężny framework.
Wiem, że było wiele dyskusji na temat usług, fabryk, dostawców i wartości, ale nadal jestem dość zdezorientowany, co to Factory
jest.
Fabryka została zdefiniowana w innych dyskusjach StackOverflow w następujący sposób:
Fabryki
Składnia: module.factory( 'factoryName', function );
Wynik: Podczas deklarowania factoryName jako argumentu do wstrzyknięcia, otrzymasz wartość, która jest zwracana przez wywołanie odwołania do funkcji przekazanego do module.factory.
Wydaje mi się, że to wyjaśnienie jest bardzo trudne do zrozumienia i nie zwiększa mojego zrozumienia, czym jest fabryka.
Czy ktoś posiada żadnych wyjaśnień lub przykładów prawdziwe życie na akcję o co dokładnie Factory
jest i dlaczego warto go użyć w miejsce Service
, Provider
lub inne?
Aktualizacja
A service
zawiera odniesienie do dowolnego obiektu .
A factory
to funkcja, która zwraca dowolny obiekt
A provider
to funkcja, która zwraca dowolną funkcję
- uff -
źródło
Factories
(cytowana powyżej) była trochę zagmatwana. Niektóre z poniższych odpowiedzi sprowadzają sięFactories
do czegoś, co nawet ja potrafię zrozumiećOdpowiedzi:
Z tego, co rozumiem, wszystkie są prawie takie same. Główne różnice to ich złożoność. Dostawcy są konfigurowalni w czasie wykonywania, fabryki są nieco bardziej niezawodne, a usługi są najprostszą formą.
Sprawdź to pytanie AngularJS: Serwis vs dostawca vs fabryka
Również ta treść może być pomocna w zrozumieniu subtelnych różnic.
Źródło: https://groups.google.com/forum/#!topic/angular/hVrkvaHGOfc
jsFiddle: http://jsfiddle.net/pkozlowski_opensource/PxdSP/14/
autor: Paweł Kozłowski
źródło
Provider > Factory > Service > Value
?Jedną z głównych różnic, które widzę, jest to, że można uruchomić niestandardowy kod w fabryce. Ale w usłudze dzieje się tylko tworzenie obiektów.
źródło
Moje dwa grosze w tym temacie. Jestem bardzo, bardzo początkującym użytkownikiem i po prostu rozumiem Angular JS i to była jedna z rzeczy, która bardzo mnie zdezorientowała, dlatego przestudiowałem to nieco szczegółowo. Robiłem notatki do udzielania wywiadów i może to być przydatne dla innych.
źródło
Usługi to głównie obiekty, w których opisujesz klasę konstruktora obiektu. Gdzieś w głębi struktury wywoływana jest funkcja Object.create (), a następnie można użyć usługi, wywołując jej obiekt i metody za pomocą kontrolera. Z drugiej strony Factory nie tworzy obiektu domyślnie i dlatego wymaga zwrócenia całej lokalizacji obiektu po zakończeniu definiowania wszystkich atrybutów i metod.
źródło