DTO LÀ GÌ

  -  

Transfer Object Pattern là gì?

Transfer Object/ Data Transfer Object Pattern là 1 dạng Architectural Design Pattern, được thực hiện Lúc bọn họ hy vọng truyền tài liệu qua lại thân những tầng trong ứng dụng, thân Client – Server. Data Transfer Object (DTO) còn gọi là Value Object (VO).

Bạn đang xem: Dto là gì

Transfer Object đơn giản và dễ dàng là một POJO (Plain Old Java Object), chỉ chứa các getter/ setter method và rất có thể bao gồm implement serialize nhằm truyền mua tài liệu thông qua network.

DTO trọn vẹn ko đựng behavior/ lô ghích, chỉ được áp dụng nhằm truyền tài liệu cùng map tài liệu từ các Domain Model trước khi truyền cho tới Client. Trong các áp dụng dễ dàng và đơn giản, các Domain Model hay có thể được thực hiện lại thẳng dưới dạng DTO với được truyền trực tiếp đến lớp hiển thị, do đó chỉ bao gồm một Data Model thống tốt nhất. Đối cùng với các vận dụng phức hợp rộng, họ không thích hiển thị toàn bộ Domain Model mang đến Client, do đó, vấn đề ánh xạ từ các Domain Model sang trọng DTO là cần thiết.

Xem thêm: Succession Planning Là Gì ? Đặc Điểm Kế Hoạch Kế Nhiệm

Cài đặt Transfer Object Pattern như thế nào?


*

UserModel.java

package com.timhome.vn .patterns.other.dto;import lombok.Data;/** * Domain Model / Entity */Bạn sẽ xem: Dlớn là gìDatapublic class UserModel private Integer id;private String userName;private String fullName;private String password;private String email;private String bankAccount;Dao.java

package com.timhome.vn .patterns.other.dto;import java.util.List;import java.util.Optional;/** * Data Access Object */public interface Dao List getAll();Optional get(Integer id);void save(T t);void update(T t);void delete(T t);UserDao.java

package com.timhome.vn .patterns.other.dto;import lombok.Data;/** * Data Transfer Object */Datapublic class UserDTO private Integer id;private String userName;private String fullName;private String email;UserService.java

package com.timhome.vn .patterns.other.dto;/** * Business Object / Logic */public class UserService private UserDao dao = new UserDao();public UserDTO getUser(Integer id) UserModel Mã Sản Phẩm = dao.get(id).get();return convertToDTO(model);public void saveUser(UserDTO dto) UserModel mã sản phẩm = convertToModel(dto);dao.save(model);public void updateUser(UserDTO dto) UserModel Model = convertToModel(dto);dao.update(model);private UserModel convertToModel(UserDTO dto) UserModel model = new UserModel();Model.setId(dto lớn.getId());mã sản phẩm.setFullName(dto lớn.getFullName());mã sản phẩm.setUserName(dlớn.getUserName());mã sản phẩm.setEmail(dlớn.getEmail());return model;private UserDTO convertToDTO(UserModel model) UserDTO dlớn = new UserDTO();dto lớn.setId(Mã Sản Phẩm.getId());dlớn.setFullName(Mã Sản Phẩm.getFullName());dto lớn.setUserName(Mã Sản Phẩm.getUserName());dto.setEmail(Mã Sản Phẩm.getEmail());return dto;DataAccessObjectPatternExample.java

package com.timhome.vn .patterns.other.dto;/** * Client - Data Access Object Pattern Example */public class DataAccessObjectPatternExample public static void main(String args) UserService service = new UserService();UserDTO dto = service.getUser(1);System.out.println("User: " + dto);dto lớn.setFullName("timhome.vn");service.updateUser(dto);System.out.println("User Updated: " + dto);Output của chương trình:

Lợi ích của Transfer Object Pattern là gì?

Tách biệt xúc tích một biện pháp ví dụ : Transfer Object chỉ cất data, còn xúc tích được implement trong phần không giống.Cãi thiện công suất ứng dụng : ngân sách của mỗi request/ response là Khủng, bọn họ yêu cầu nỗ lực gửi các tốt nhất hoàn toàn có thể. Để làm vấn đề đó, chúng ta có thể sinh sản một Transfer Object nhằm gửi data trường đoản cú Client lên Server giỏi tự Server mang đến Client một lần độc nhất vô nhị, gắng do đề nghị gửi từng phần chơ vơ.Giảm kết dán thân những tầng vào ứng dụng: Client chỉ thao tác với Transfer Object, cho nên nó không trở nên tác động Lúc Domain Model thay đổi.Bao đóng góp những đối số : một cách tiến hành có tương đối nhiều đối số, chúng ta cũng có thể bao đóng góp bọn chúng vào một Transfer Object.

Xem thêm: Metaheuristic Là Gì ? Ý Nghĩa Của (Meta) Phương Pháp Heuristic

Giúp chúng ta thuận lợi không ngừng mở rộng, thêm/ sút đối số.Nhận nhiều tài liệu trả về : vào Java, một phương thức chỉ có thể trả về một quý giá, nhằm hoàn toàn có thể thừa nhận được không ít cực hiếm, bạn cũng có thể bao đóng bọn chúng vào một Transfer Object.Tăng bảo mật ứng dụng : tùy vào người tiêu dùng khác biệt rất có thể coi được một số trong những dữ liệu nhất quyết. Chúng ta hoàn toàn có thể sinh sản các Transfer Object khác nhau đến từng các loại người tiêu dùng cố bởi vì trả về một Domain Object một giải pháp trực tiếp. Trường đúng theo ví dụ tuyệt nhất là User Model, domain name object này cất công bố cả email, password, số tài khoản ngân hàng. Chúng ta có thể chế tạo ra một Transfer Object đơn giản và dễ dàng chỉ chứa thông báo bọn họ thương hiệu, ngày sinch. Không cần thiết cần trả tất cả tài liệu Domain Model về Client. Tài liệu tsi mê khảo: