上の表で「作成、使用クラス」として記入されたものはwisdomの抽象クラスのサブクラスです。
実装クラスはクラス名でどの機能の実装か判別できるようにあらかじめネーミングルールを設定しておきます。
ネーミングルールの例)
親クラス名 | ネーミングルール |
---|---|
AbstractRequestCommand | AbcdCmd |
AbstractFormObject | AbcdFo |
AbstractFormObjectGenerator | AbcdFog |
AbstractFormObjectPersistance | AbcdFop |
名前をルール化して、関係者がそのクラスの役割、実装内容を理解してコミュニケーションを行うのは非常に重要です。
過去のプロジェクトでは 上記例のルールが多く「エフオーピーにバグがあった」「エフオーに変数を追加して、エフオーピーで登録する処理を追加すれば大丈夫」など、開発者同士の意思疎通がしやすくなります。
アプリケーションを作成する場合にはどのようにクラス分割し、各クラスでどのようなメソッドで実装するかをおおまかに決めておきます。
決める際には画面、各画面で行われる処理(ここではトランザクションと呼びます)を使用して一覧化します。各トランザクションに固有の名前を 付与します。(表ではopと書いています。)wisdomでは1コマンドクラスで複数種類のトランザクションを処理を行うのが基本になりますので、 処理コマンドの名前を入れます。通常の一覧、検索などのページ遷移はWisdomの共通クラスを用いて実装を行いますが、抽象クラスを継承して 新規に作成するクラスがある場合はそれらを明示的に記入します。
例)
画面名 | JSP | 機能 | 処理コマンド | op | 作成・使用クラス |
---|---|---|---|---|---|
ユーザー一覧 | userlist.jsp | 初期表示 | UserCmd | ||
前へ | list | ||||
次へ | list | ||||
ページ選択 | list | ||||
新規登録 | entry | UserFo | |||
更新リンク | update | UserFo,UserFog | |||
ユーザー登録・更新画面 | userentry.jsp | 登録・更新 | entryconfirm | UserFo,UserFop | |
削除 | deleteconfirm | ||||
一覧に戻る | list | ||||
ユーザー登録・更新確認画面 | userentryconfirm.jsp | 登録・更新 | doentry | UserFo,UserFop | |
更新画面に戻る | backentry | ||||
一覧に戻る | list | ||||
ユーザー削除確認画面 | userdeleteconfirm.jsp | 削除 | dodelete | UserFo,UserFop | |
更新画面に戻る | backentry | ||||
一覧に戻る | list |
UserCmdクラスが、パラメータopの値により各トランザクションの処理を実装していく、と文書化できました。
作成、使用クラスは可能であれば明示的に記入しましょう。新規で作成するクラスがある場合はそのクラスを使って欲しい、という明示的に指定することに なります。また、人によってはメソッドを独自に増やしたり、独自のクラスを数多く作ってしまいます。この資料は厳密に守る必要がある、という意味ではなく 「こう作っていく」というガイドラインになり、この資料の行数によって作業量の把握、スケジュール管理にも役立ちます。