|
||||||||||||
| 前のページ 1 2 3 4 次のページ | ||||||||||||
| DIxAOPコンテナとシステム構築 | ||||||||||||
|
DI(依存性の注入)についての解説を行ってきましたが、ではDIxAOPコンテナが提供する依存性の注入はどのようなシステムを構築する時に利用すればよいでしょうか。 DIxAOPコンテナが解決する依存性の注入は、ステートレスつまり値を持たないオブジェクトをつなぐのに向いています。このようなステートレスなオブジェクトを利用した設計パターンをトランザクションスクリプト(図4)といいDIxAOPコンテナはトランザクションスクリプトを実現するのに向いています。 トランザクションスクリプトで扱うドメインオブジェクトは、振る舞いを持たないシンドメイン(やせたドメイン)です。シンドメインに値を設定するのは、DIxAOPコンテナではなくデータベースにアクセスして値を取得するDAO(Data Access Object)です。またDAOが値をセットするシンドメインのことをTO(Transfar Object)やValueObjectなどと呼びます。 このように見ていくと、ステートレスな制御処理とDBの操作を行うオブジェクトで構成されるWebアプリケーションは、トランザクションスクリプトで設計され、DIxAOPコンテナで実装することが向いているといえるでしょう。 トランザクションスクリプトに対し、値と振る舞いを持ったコンポーネントがメッセージを交換し合うようなシステムの設計パターンをドメインモデル(図5)といいます。 ![]() 図5:ドメインモデル ただし、振る舞いをもったドメインに関してもDIxAOPコンテナで管理できるように考えている人たちもいますので、今後はドメインモデルの構築にもDIxAOPコンテナが向いているという時代が来ることも考えられます。 |
||||||||||||
| インターフェースベースの設計 | ||||||||||||
|
DIxAOPコンテナの仕組みと適用ドメインについては、ここまでで理解していただけたかと思います。 次にDIxAOPコンテナが多くの開発者に注目され利用されている大きな理由の1つであるインターフェースベースの設計について解説します。 DIxAOPコンテナは原則として、具象クラスではなくインターフェースを利用してコンポーネント間の依存性を解決します。これによりWebアプリケーションの構築にDIxAOPコンテナを利用すると、レイヤー間にまたがるコンポーネント同士のメッセージ交換を直接行う(図6)のではなく、インターフェースを介して行うインターフェースベースの設計(図7)が促進されます。これによりAADL3の必須要素であるコンポーネント間の結合度を疎にすることが容易に実現できるようになります。 DIxAOPコンテナを利用したインターフェースベースの設計でコンポーネント間の疎結合を実現できると表6のような利点があります。
|
||||||||||||
|
表6:コンポーネント間の疎結合の実現による利点 |
||||||||||||
|
前のページ 1 2 3 4 次のページ |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||






