DTO と DAO を使用する理由と、いつ使用すべきかを教えてください。データの挿入、編集、削除を行う GUI Java ソフトウェアを開発しています。しかし、DTO/DAO とモデル、ビュー、コントローラー (MVC) 構造を区別するのに苦労しています。これらは似ていますが、Java GUI を介してデータベースを操作する場合はどちらを使用する方がよいでしょうか。
私が本当に興味を持っていることの 1 つは、View と Controller を 1 つのクラスにまとめることが良い方法であるかどうかです。NetBeans について考えると、GUI
Frame
クラスを作成して、フレーム上にコンポーネントを追加できますJButton
。ボタンをダブルクリックすると、フレーム内にあるメソッド (Controller) に移動actionListener
し、データがユーザー (View) に表示されます。つまり、これらは同じクラスにあります。これは完全にコンセプトに反しているのでしょうか、それともそうではないのでしょうか。
ここ私が話しているのは
ビューとコントローラーを 1 つのクラスに配置するのは悪い習慣でしょうか?
ベストアンサー1
DTO
の略語ですデータ転送オブジェクト、アプリケーションのクラスとモジュール間でデータを転送するために使用されます。
DTO
データ、ゲッター、セッター、コンストラクタのプライベート フィールドのみを含める必要があります。DTO
このようなクラスにビジネス ロジック メソッドを追加することは推奨されませんが、いくつかのユーティリティ メソッドを追加することは問題ありません。
DAO
の略語ですデータ アクセス オブジェクトしたがって、データ ストレージ (データベース、ファイル システムなど) 内のデータを取得、保存、更新するためのロジックをカプセル化する必要があります。
DAO および DTO インターフェイスの例を次に示します。
interface PersonDTO {
String getName();
void setName(String name);
//.....
}
interface PersonDAO {
PersonDTO findById(long id);
void save(PersonDTO person);
//.....
}
これはMVC
より幅広いパターンです。DTO/DAO は MVC パターンのモデルになります。
これは、データ取得を担当する部分だけでなく、アプリケーション全体を編成する方法を示します。
2番目の質問については、小さなアプリケーションであれば全く問題ありませんが、MVCパターンに従いたい場合はコントローラーを別にした方が良い、これはフレームのビジネス ロジックを別のクラスに含み、イベント ハンドラーからこのコントローラーにメッセージを送信します。
これにより、ビジネス ロジックがビューから分離されます。