序文
DTO の概念と基本的な使用法をまとめた記事のリンクを参照してください。
DTO の概要
DTO 自体はビジネス オブジェクトではなく、UI 要件に従って設計されています。簡単に言えば、モデルはビジネス指向であり、ビジネスを通じてモデルを定義します。
DTO は UI 指向であり、UI 要件によって定義され、DTO を通じてプレゼンテーション層とモデル層の間の分離を実現し、プレゼンテーション層はモデルを参照しません。開発プロセス中にモデルが変更されても、インターフェイスが同じままの場合、プレゼンテーション層を変更せずにモデルを変更するだけで済みます。
DTO コードの例
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_user")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private String phone;
private String password;
private String nickName;
private String icon = "";
private LocalDateTime createTime;
private LocalDateTime updateTime;
}
元のユーザー クラス
はモデル指向であり、
フロントエンドがユーザー名を表示するだけでよい場合は
、パスワードなどの機密データを渡すべきではありません。
UI 指向の DTO を定義する必要があり
、ビジネスでアドレスなどの新しい属性を追加するためにバックエンド モデル層を変更する場合、
ある程度の分離を実現するために UI 指向の DTO を変更する必要はありません。
そこで、DTO の利点を使用します。
1 は特定のビュー層とモデル層の分離を実現するために使用
します。 2 は機密情報の漏洩を防ぐことができます。
3 セッションを使用してアクセスするデータが少ない場合は、メモリ領域を節約できます。
DTO を使用します。
@Data
public class UserDTO {
private Long id;
private String nickName;
private String icon;
}