考えたことメモ
アスペクト指向の定義
複数のモジュールを横断する機能を織り込むこと。
アスペクト指向を用いない設計
複数のモジュールで共通化されていない同機能を持つ部品がある状態。
冗長に見える。
アスペクト指向の実現手段(C#)
1. 属性を用いたアダプタ、プロキシ
実装が複雑
属性でメソッドの動作が変更されることは普段のプログラミングでは起きないので、読解力が落ちる
2. 拡張メソッド、スタティックメソッド
スコープ管理注意
3. 外部ファイルからのクラス生成機能の利用
Xmlファイルの設定内容を読み込んでクラス生成を行なうフレームワークを想定。生成方法指定の際に、埋め込みたい機能も指定する。
機能を埋め込みたいクラスの数が多い場合に、Xmlファイルで対象全てを指定するのは手間がかかる。本来はDIを用いないほうがよいクラスでもDIを利用することになるなど本末転倒となりかねない。
注意点
アスペクト指向で共通化部品を抽出する際に、本当にその部品が共通化できるものなのかの見極めが行えない。
複数のモジュールを横断する機能はUMLのようなクラス間の関係を示した説明書では表現しづらい。フリーフォーマットの説明書が必要。