前回の続き
一応、クラス設計について。
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クラスに分けたのがポイントかな。
コメント