Goyaオブジェクトモデル
WEB+DB PRESS Vol.31 のS2特集で、Goyaについて説明されていたので、Goyaのオブジェクトモデルを図にしてみた。図にしないと覚えられないんです。
※注 オブジェクトモデルは、Goyaの成果物のひとつであり、Goya自体は要件定義/外部設計/内部設計/実装/テストの工程を対象にした設計指針です。
各クラスを作成する単位は以下のようになる。
画面単位に作成するもの | → | Action、DTO、Service、DXO |
業務ロジック単位に作成するもの | → | Logic/Rule |
テーブル単位に作成するもの | → | DAO、Entity |
また、Action、Service、DXO、Logic/Rule、DAOは、インタフェースと実装を分離する。
こうして図にしてみると、ServiceがDAOにアクセスするのは、少し違和感がある。ServiceがLogic/Ruleを介さずに、DAOにアクセスするパターンはどのようなときだろうか?何かしら指針がないと、実装時に人によってぶれそう。