Próbuje zrozumieć różnice pomiędzy factory a service w angularze (1), jednak nie potrafię sobie w pełni tego zwizualizować. Za każdym razem jak wywołam serwis/fabrykę to właściwie zwracany output niczym się od siebie nie różni. Więc w konsekwencji nie widzę tej różnicy.
app.service('MojSerwis', ['$http', function($http) { var licznik = 0; this.powitaj = function() { licznik++; return 'string z serwisu'; }; }]); app.factory('MojaFabryka', ['$http', function($http) { var numer = 0; return { powitaj: function() { numer++; return 'string z fabryki'; } } }]); // + controller app.controller('MyCtrl', ['$scope', 'MojSerwis', 'MojaFabryka', function($scope, MojSerwis, MojaFabryka) { console.log(MojSerwis.powitaj()); console.log(MojSerwis.powitaj()); console.log(MojaFabryka.powitaj()); console.log(MojaFabryka.powitaj()) }]);
I zwraca mi wynik normalnie. W sieci padają słowa, że serwis tworzysz jak nową instancję klasy w PHP, po przez: "new {nazwa_klasy}" jednak tutaj wykorzystując DI nie muszę tworzyć przez "new"
Przykład podałem na zasadzie zwracającego stringu bo widziałem w sieci jak ktoś dał "hello world" i najwyraźniej jakaś różnica w tym jest (nawet jak zwraca zwykły string a nie np. json'a przez $http)
Może ktoś powiedzieć, rozwinąć - gdzie tu różnica jest? Widzę, że w sposobie zwracania danych - fabryka po przez "return" zwraca listę dozwolonych metod - natomiast serwis jest ogólno dostępny (tj: jego metody) - tak? To jest ta różnica?