1. ホーム
  2. java

[解決済み] DTO・DAOの概念とMVC【終了しました

2022-03-04 19:03:57

質問

1) なぜ DTODAO また、どのような場合に使用するのでしょうか。私が開発しているのは GUI データの挿入、編集、削除を行うJavaソフトウェアです。を区別するのに苦労しています。 DTO/DAOModel , View , Controller (MVC)構造ですか?これらは似ていますが、Javaを通してデータベースとやりとりする場合、どちらを使うのが良いでしょうか? GUI .

2) 私がとても気になっているのは、「このような場合は viewController を1つのクラスで使用します。もし私たちが Netbeans を作成することができます。 GUI のようなコンポーネントを追加します。 JButton をフレーム上に配置し、ボタンをダブルクリックすると、そのフレーム上の actionListener メソッド(Controller)の中にあるように見えますが、これはデータをユーザーに表示するフレーム(View)の中にあるのです。つまり、同じクラスの中にあるわけです。これは完全にコンセプトに反しているのでしょうか、それとも違うのでしょうか?

これ というものです。

ビューとコントローラを1つのクラスにすることは悪い習慣ですか?

解決方法は?

DTO の省略形です。 データ転送オブジェクト アプリケーションのクラスとモジュールの間でデータを転送するために使用されます。

  • DTO は、データ用のプライベートフィールド、ゲッター、セッター、コンストラクターのみを含む必要があります。
  • DTO このようなクラスにビジネス・ロジックのメソッドを追加することは推奨されませんが、いくつかの util メソッドを追加することは可能です。

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パターンに従うとなると 別のコントローラ このコントローラは、フレームのビジネスロジックを別のクラスに格納し、イベントハンドラからこのコントローラにメッセージをディスパッチします。
これにより、ビジネスロジックとビューを分離することができます。