|
||||||||||||
| 前のページ 1 2 3 4 | ||||||||||||
| サンプルアプリケーションへのインターフェースの導入 | ||||||||||||
|
ここまで、DIxAOPコンテナのDI(依存性の注入)について特徴や利点などを取り上げて解説しましたが、ここからはAADL1で設計された簡単なWebアプリケーションをDIxAOPコンテナを利用することでAADL3にしてゆく過程の一部を解説していきます。なお、サンプルアプリケーションをAADL3にしていく過程は本連載を通して行います。今回はその最初の部分について解説します。 まずはDIxAOPコンテナを利用したインターフェースベースの設計の利点を感じていただくために、従業員の表示、登録、削除を行う「従業員管理Webアプリケーション」を例に、インターフェースベース設計の前と後でどのように変わるのかを解説します。 図8は従業員管理Webアプリケーションの画面(Seasar2用)になります。図9はテーブルです。非常に簡単な構造ですが、設計について理解していただくにはこれだけで十分です。 ![]() 図9:使用するテーブル しかし、これではレイヤー間のコンポーネントが密に結合しているため、レイヤーごとに開発者を分けることが困難です。これが大規模システムであればレイヤーごとに開発チームを分けての並行開発が困難になります。次にコンポーネント間にインターフェースを導入した設計が図11です。 ここでもまだDIxAOPコンテナは利用していませんが、インターフェースを導入したことでレイヤー間が疎結合になっているように見えます。 インターフェースを導入したことにより、インターフェースさえ守ればコンポーネント間の結合も容易になり、レイヤーごとに開発者を分けやすくなりました。 しかし今のままでは、レイヤー間のコンポーネントが疎結合になったように見えますが、実はまだ疎結合になりきっていません。 下記はEmployeeManagerImplのソースコードです。 |
||||||||||||
public class EmployeeManager {
|
||||||||||||
| (1)でEmployeeDaoImplを生成しています。つまり、EmployeeManagerImplは利用する実装オブジェクトを知っている必要があります。これではレイヤーごとのテストでEmployeeManagerImplが利用していたMockオブジェクトを結合テスト時にEmployeeDaoImplにソースコードを書き換える必要がでてきます。 EmployeeManagerImplがEmployeeDaoインターフェースだけを知って、実装オブジェクトを知らなくてもよくするための方法は1つではありませんが、最も簡単な方法はDIxAOPコンテナを導入することです。 この回答は次回、Seasar2とSpringのインストール手順を記述した後、SeasarとSpringの解説で個別に解説します。 |
||||||||||||
|
前のページ 1 2 3 4 |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||






