Mam app z angularjs i maszynopisW jakich przypadkach należy użyć fabryki AngularJS z Maszyną?
Chcę wiedzieć, czy jest jakiś przypadek kiedy należy używać angularjs fabryka zamiast maszynopis Static Class
Mam app z angularjs i maszynopisW jakich przypadkach należy użyć fabryki AngularJS z Maszyną?
Chcę wiedzieć, czy jest jakiś przypadek kiedy należy używać angularjs fabryka zamiast maszynopis Static Class
Nic nie zmienia się w przypadku klas ES6/TypeScript. Są po prostu składnikiem cukru dla funkcji konstruktora JavaScript.
Przypadki dobrego wykorzystania dla usług factory
można określić na podstawie procesu eliminacji.
Od service
usługi są korzystne dla jednostek OOP smaku:
class FooClass {
static $inject = [...];
constructor(...) {}
}
app.service('foo', FooClass);
I value
usługi są odpowiednie dla pojedynczych jednostek, które nie są zbudowane z klas i nie wiążą DI:
app.value('bar', 'bar');
app.value('Baz', BazClass);
factory
usługi mogą być używane w pozostałych przypadkach. To znaczy. gdy usługa musi DI i wrócił wartość nie może być łatwo skonstruowany z klasą - funkcja, prymitywne, obiektu, który jest zwracany z wywołania funkcji:
app.factory('qux', ($q) => $q.all([...]));
Mieliśmy ten sam problem dwa Lata temu. Decyzja polegała na pozostawaniu w systemie kątowym i budowaniu tylko usług kątowych. Ani kątowa fabryka, ani maszynopis statyczny. Powodem było to, że mogliśmy śledzić, jak usługa została stworzona i udostępniona. (przez twarde)
Aby odpowiedzieć na twoje pytanie, fabryka kątowa jest obiektem, który wciąż potrzebuje bazy wtryskowej na systemie kątowym. Dobrze, jeśli chcesz zachować ciasno kątowe.
Z drugiej strony maszynopis jest bardziej ogólny. Kiedy wywołujesz funkcję statyczną, jest to tylko funkcja. Możesz importować go nigdzie indziej, nie jako kątowy, a potem go użyć.
Coś o javascript wzór:
wspólny wzorzec do tworzenia obiektów w JavaScript to wzorzec modułu. Wzór obejmuje zwrócenie obiektu z funkcji, która będzie Twoim publicznym API.
Istnieje popularna odmiana dla wzorca modułu o nazwie moduł ujawniający moduł. Co się dzieje z wzorcem modułu odkrywczego, to rzeczy zaczynają się jawnie prywatne, a następnie podejmowane są wybory dotyczące tego, czy stają się publiczne.