Djember クラス設計

前回の続き

一応、クラス設計について。
Djemberは以下の10のクラスで構成されている。

クラス タイプ 概要
basebean 抽象クラス DBの1行を格納するクラスの基底クラス。
コンストラクタでDB接続を行う。
DBの更新、削除処理を包括している。
userbean basebeanの継承クラス usersテーブルの1行を格納するクラス。
usersテーブルの挿入、更新、削除SQL生成処理、
登録時の入力チェック処理、
新規登録時の登録メール送信処理を実装している。
scorebean basebeanの継承クラス scoresテーブルの1行と、それにひもづく
score_beanテーブルの内容を格納した
tagbeanlistを格納するクラス。
scoresテーブルの挿入、更新、削除SQL生成処理、
登録時の入力チェック処理を実装している。
またDB更新、削除処理をオーバーライドし、
scoresテーブル更新、削除時に、それにひもづく
score_tagsの更新、削除も行っている。
tagbean basebeanの継承クラス tagsテーブルの1行を格納するクラス。
tagsテーブルの挿入SQL生成処理、
登録時の入力チェック処理を実装している。
またDB更新、削除処理をオーバーライドし、
tagsテーブル挿入時は、それにひもづくuser_tagsを、
削除時には、それにひもづくuser_tags、score_tagsの
削除も行っている。
loginbean basebeanの継承クラス login中ユーザのusersテーブルの情報を格納するクラス。
ログイン時の入力チェック処理、パスワードメール送信所折を
実装している。
basebeanfactory 抽象クラス basebeanクラスを生成し、beanlistに格納するクラスの
基底クラス。コンストラクタでDB接続を行う。
sqlのorder by句を生成する機能を実装している。
基本的に、すべてのbeanクラスはこのクラスで生成され、
DBからの値をセットする。
※ただし、loginbeanのみ個別に生成される。
userbeanfactory basebeanfactoryの継承クラス userbeanクラスを生成し、usersテーブルの内容を
格納した後、beanlistに格納するクラス。
scorebeanfactory basebeanfactoryの継承クラス scorebeanクラスを生成し、scoresテーブルの内容を
格納した後、beanlistに格納するクラス。

tagbeanfactory basebeanfactoryの継承クラス tagbeanクラスを生成し、tagsテーブルの内容を
格納した後、beanlistに格納するクラス。
user_tags、score_tagsと結合し、user_id、score_idに
ひもづくtagsテーブルのデータを
取得する機能を実装している。
beanlist basebeanクラスを配列に格納するクラス。
ページング機能、格納したbeanを1つずつ取り出す
fetch機能を実装している。
各画面では、このクラスを操作して画面を表示している。

クラス図は描くほどの事もないので、クラス設計はこんだけ。
データ取得はfactoryクラス、データ更新と、SQL生成はbeanクラスに分けたのがポイントかな。

コメント

タイトルとURLをコピーしました