私はまだAngularJSを学んでおり、依存性注入のフレーバーについて質問があります. 例として、パラメーターを受け取るメソッドDataProcessor
を持つサービスがあり、そのデータ (xml、json など) を読み取り、それに対していくつかのアクションを実行する必要があるとします。コンストラクターは、特定のファイルの種類を読み取る方法を認識しているインターフェイスの実装を受け取ります。以下は、私が話しているサービスの例です。processData
uri
DataProcessor
DataReader
// implementations of the DataReader interface
myApp.service('XmlDataReader', function() {
this.readData = function(uri) {
// read xml data from uri
}
}]);
myApp.service('JsonDataReader', function() {
this.readData = function(uri) {
// read json data from uri
}
}]);
// data processing service that takes in an implementation of a DataReader
myApp.service('DataProcessor', ['DataReader', function(DataReader) {
this.processData = function(uri) {
var readData = DataReader.readData(uri);
// process data and return it
}
}]);
典型的な依存性注入の観点から、特定のタイプのDataReader
を に渡して、次のDataProcessor
ように使用できます。
var dataProcessor = new DataProcessor(new JsonDataReader());
var processedData = dataProcessor.processData('dataz.json');
これを行うAngularJSの方法は何ですか?