2016-10-14 2 views
0

Я пытаюсь найти настоящую различию, когда мне нужно использовать фабрику или службу, но что я всегда найти в примерах такой же, как:В чем разница между «сервисом» и «фабрикой»?

a) This is the way to create the "i18n" service... 
b) This is the way to create the "i18n" factory... 

Это как поместить один и тот же код в Diferent для того, чтобы сделать то то же самое. Поэтому я всегда спрашиваю себя: что такое реальное различие, если я могу сделать то же самое?

И еще одна проблема заключается в множестве учебников, которые люди придают разное значение каждому термину, так что теперь я испуган.

Итак, я спрашиваю:

  1. Что такое смысл службы?
  2. В чем смысл фабрики?
  3. В чем разница между сервисом и заводом?
  4. Когда мне нужно воспользоваться услугой?
  5. Когда мне нужно использовать завод?

Спасибо!

ответ

1

1. В чем смысл службы?

2. В чем смысл фабрики?

Смысл обслуживания и фабрики тот же, то есть они являются функциями javascript и несут ответственность за выполнение конкретной задачи. Угловое сервисное обслуживание и сервис Angular Factory - это способ, которым мы можем создать услугу «Угловая», и в зависимости от потребности приложения мы можем использовать любой из них.

3. Что такое служба и завод?

В службе сервиса функция действует как конструктор, и вам не нужно инициализировать и возвращать переменную, служба автоматически делает это за вас.

myApp.service("LoginService", function() {   
     this.login = function (username, password) {     
      this.isLogged = true;  
     }   
    }) 

и в контроллере вы можете получить доступ к службе, используя ниже code-

LoginService.login($scope.form.Username, $scope.form.Password);   
    $scope.loggedMessage = LoginService.isLogged; 

В то время как на заводе, вы должны явно инициализировать объект и вернуть его, как показано ниже

myApp.factory("LoginFactory", function() { 
     var obj = {}; 
     obj.login = function(username,password){    
      obj.isLogged = true;    
      return obj; 
     } 
     return obj;  
    }) 

и в контроллере вы можете получить доступ к заводским установкам, используя нижеследующий код:

var obj = LoginFactory.login($scope.form.Username, $scope.form.Password); 
    $scope.loggedMessage = obj.isLogged; 

4. Когда мне нужно воспользоваться услугой?

Его следует использовать для простой логики. Он используется для регистрации функции, которая будет использоваться как конструктор объекта. Например - используйте службу для сохранения данных о пользователе пользователя в объекте.

5. Когда мне нужно использовать завод?

Factory возвращает экземпляр объекта и с помощью этого объекта вы можете получить доступ к заводским функциям. Например, у вас есть MathFactory с функциями добавления, вычитания, умножения.