動画検索とダウンロードがワンクリック! YouTubeとニコニコ動画に特化したツールバーをダウンロードして動画を楽しもう!!

アスペクト指向プログラミング

最近あちらこちらで見かける「アスペクト指向プログラミング」という言葉。
私が思うには、開発の手法というよりは、保守性、機能拡張を向上するために研究されたものという感じかな。

このアスペクトという考え方はすごいというか、こんなことができるのかという感じです。
いろいろなところで説明がされていますが、例がないと分かりにくいし、説明をするのも難しくなります。
そのため、概念説明+例による説明って構成で説明されています。
面白いのは、ほとんどの例に取り上げられるのが、ログ機能の追加という例。みなさん、よほどロギングの機能の実装に苦労しているのでしょうかね。(笑

簡単に説明すると、ある機能を実装するオブジェクトがあるとします。そのオブジェクトにログ機能を追加するとしましょう。
いろいろなアプローチがあるかとは思いますが、そのオブジェクトのメソッドにログ出力を行うための処理を追加するのが一般的なのかもしれません。
しかし、それが1個所なら問題がありませんが、いろいろな個所に追加しなければならないとしたらどうでしょうか。
まぁ、力技でコーディングすればいい話ですが、実装ミスや再テストが必要になるでしょう。

そこでアスペクトという考え方が登場するわけです。
上記の例ならまずログを出力する機能を実現するオブジェクト(アスペクト)を用意します。
そして、ログ出力をいつ実行するか記述するだけなのです。
つまり、もとのオブジェクトは一切変更せずに、ログ機能を追加することが可能なのです。(信じられません)

私はどうやって実現するのかを考えることがあるので、一種のフックかなぁと思ったりもしますが、実現方法を考えるとアスペクト指向の本質を誤解する可能性があります。
ということで概念を学ぶことが重要だと思っています。

しばらくはアスペクト指向に興味を持って勉強してみたいと思います。

コメント&トラックバック

アスペクトじゃなくてアクセプトになっちゃってますね。

2005/9/9 金曜日 17:30:14 posted by US

おお、ご指摘ありがとうございます。
恥ずかしいので修正しました。(w

2005/9/9 金曜日 19:38:59 posted by Darksky






Whim  ~ひとり言~

Miesqueブックマーク メンテナンス

~ 12/06 作業状況 ~

12/06 09:45 データ移行完了
12/06 09:50 DNS切り替え
12/06 10:20 作業完了

あとはDNSが切り替われば、編集・参照も可能となります。

このページが閲覧できれば、ご利用の環境でDNSが正常に切り替わっていると思います。

~ 12/10 作業状況 ~

12/10 11:50 正常動作確認のため、新規追加、編集、削除を禁止
12/10 18:00 書き込み制限を解除
ご迷惑をおかけしました。


徹底解説HTML5マークアップガイドブック

Internet Explorer Plus

Miesque Internet Services

Windows Writer Plugin

   

Sleipnir Darksky Plugin

ブログランキング・にほんブログ村へ