1

(サービスに注入する依存性が多い) のどちらがパフォーマンスの点で優れていると思われますか?角度インジェクタの角度依存性注入性能

app.service('randomService', function(dependency1, dependency2, ...) { 
    //code 
}); 

又は

app.service('randomService', function($injector) { 
    var service; 
    this.svFct = function (entityType, idList, entityList) { 
      switch (entityType) { 
        case 'product': 
         service = $injector.get('dependency1'); 
         service.get({}, onSuccess, onError); 
         break; 
        case 'order': 
         service = $injector.get('dependency2'); 
         service.get({}, onSuccess, onError); 
         break; 
        case 'actor': 
         service = $injector.get('dependency3'); 
         service.get({}, onSuccess, onError); 
         break; 
        ... 
        } 
    }; 
}); 
+0

これは重複していません。 dupeとマークされた問題はテストと 'angular.mock.inject'に関するものですが、それは対象とは関係ありません。 – estus

答えて

3

パフォーマンスへの影響は無視できます。サービスは、最初の注入時にインスタンス化され、その後の注入時にキー/値の格納場所から取得されるシングルトンです。

2つのスニペットに同じロジックが含まれていないため、比較が正しくありません。 svFctメソッドは複数回呼び出すことができ、呼び出しごとに$injector.get(...)を実行します。

最初のケースでは、インジェクタコールが1つあります。 2番目のケースでは、複数のインジェクタコールがあります。