MVC パターンを使用しているアプリケーションを作成しています。このために、ビューを jsps、コントローラーをサーブレット、モデルを DAO オブジェクトと見なしています。DAO オブジェクトをモデルと見なすことが正しいか間違っているか疑問があります。
2 に答える
モデルはDAOではありません。これは、すべてのドメインロジックを含むレイヤーであり、主に2種類の要素で構成され、次の責任があります。
- ビジネスの論理
- データアクセス(通常はDataMapperとして実装されます)
アイデアは、ビジネスロジックがストレージメカニズムに結び付けられるべきではないということです。請求書を作成するとき、データがSQLデータベース、MSWordドキュメント、リモートREST API、またはモックアップされたデータからのものであるかどうかは、ドメインオブジェクトが気にする必要はありません。
この記事は興味深く関連性があると思うかもしれません:GUIアーキテクチャ。
MVCのモデルは、ビジネスロジックが存在する場所です。
Sun Java EEパターン定義を見ると、DAOが永続メカニズムをカプセル化し、ビジネスオブジェクトによって使用されていることがわかります。したがって、DAOが自然にビジネスロジックを持っているとは思いません。
単純なシステム、いくつかのデータベーステーブル、またはビジネスロジックがデータベースに実装されているテーブル(ストアドプロシージャ、参照整合性チェック、トリガー)では、DAOは事実上ビジネスロジックの前のファサードであるため、モデル。そのため、一部の入門資料では、DAOをモデルのほぼ唯一のJava式と見なす場合があります。
Javaでビジネスロジックを実装することを選択すると、DAOの上のレイヤーに配置されます。たとえば、DAOを使用するSession Beansであり、私の考えでは、モデルであるSessionBeanまたは同等のものです。
ですから、自問してみてください。ビジネスロジックはどこにあるのでしょうか。それがモデルの実際の場所です。