File tree Expand file tree Collapse file tree 1 file changed +1
-1
lines changed Expand file tree Collapse file tree 1 file changed +1
-1
lines changed Original file line number Diff line number Diff line change @@ -436,7 +436,7 @@ myModule.config(function ($provide) {
436436```
437437
438438上記の例では ` foo ` という名の新しいサービスを定義しています。 ` config ` のコールバックは、最初の引数をデコレートしたいサービス名である ` foo ` として ` $provide.decorator ` を呼び出しています。2番目の引数は実際のデコレーションを実装しているファクトリ関数です。 ` $delegate ` はオリジナルサービス ` foo ` への参照を持っています。AngularJSの依存性の注入メカニズムを使うことにより、ローカルな依存性への参照はコンストラクタ関数の最初の引数として渡されます。
439- ` bar ` メソッドを上書きすることによってサービスをデコレートします。実際のデコレーションは単に ` bar ` でもう一つの ` console.log ステートメント ` - ` console.log('Dcorated '); ` を実行するように拡張することです。その後、オリジナルの 'bar' メソッドを適切な文脈で利用します。
439+ ` bar ` メソッドを上書きすることによってサービスをデコレートします。実際のデコレーションは単に ` bar ` でもう一つの ` console.log ステートメント ` - ` console.log('Decorated '); ` を実行するように拡張することです。その後、オリジナルの 'bar' メソッドを適切な文脈で利用します。
440440
441441サード・パーティの機能を変更する必要がある場合特にこのパターンは役に立ちます。複数の似たようなデコレーションが必要となった時(複数のメソッドのパフォーマンス計測、認証、ログ出力など)、複製がたくさんでき、DRYの原則を破ってしまいます。そのような場合には[ アスペクト指向プログラミング(AOP)] ( http://en.wikipedia.org/wiki/Aspect-oriented_programming ) を取り入れるとよいでしょう。AngularJSで利用できるAOPフレームワークとしては、分かる範囲では唯一、 [ github.com/mgechev/angular-aop] ( https://github.com/mgechev/angular-aop ) があります。
442442
You can’t perform that action at this time.
0 commit comments