Bài viết Dto Là Gì – Dto Conversion Với Model Mapper thuộc chủ đề về Câu Hỏi Quanh Ta đang được rất nhiều bạn quan tâm đúng không nào !! Hôm nay, Hãy cùng TruongGiaThien.Com.Vn tìm hiểu Dto Là Gì – Dto Conversion Với Model Mapper trong bài viết hôm nay nha !
Các bạn đang xem bài : “Dto Là Gì – Dto Conversion Với Model Mapper”

Transfer Object Pattern là gì?

Transfer Object/ Data Transfer Object Pattern là một dạng Architectural Design Pattern, được dùng khi chúng ta muốn truyền dữ liệu qua lại giữa các tầng trong ứng dụng, giữa Client – Server. Data Transfer Object (DTO) còn được gọi là Value Object (VO).

Transfer Object đơn giản là một POJO (Plain Old Java Object), chỉ chứa các getter/ setter method và khả năng có implement serialize để truyền tải dữ liệu thông qua network.

DTO hoàn toàn không chứa behavior/ logic, chỉ được dùng để truyền dữ liệu và map dữ liệu từ các Domain Model trước khi truyền tới Client. Trong các ứng dụng đơn giản, các Domain Model thường khả năng được dùng lại trực tiếp dưới dạng DTO và được truyền trực tiếp đến lớp hiển thị, vì thế chỉ có một Data Model thống nhất. Đối với các ứng dụng phức tạp hơn, chúng ta không muốn hiển thị toàn bộ Domain Model cho Client, vì thế, việc ánh xạ từ các Domain Model sang DTO là rất cần thiết.

Bài Nổi Bật  Cũng Như Tiếng Anh Là Gì

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

*

UserModel.java

package com.TruongGiaThien.Com.VN .patterns.other.dto;import lombok.Data;/** * Domain Model / Entity */

Bạn đang xem: Dto 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.TruongGiaThien.Com.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.TruongGiaThien.Com.VN .patterns.other.dto;import java.util.ArrayList;import java.util.List;import java.util.Optional;public class UserDao implements Dao // Temporary databaseprivate List users = new ArrayList();public UserDao() UserModel user = new UserModel();user.setId(1);user.setUserName(“TruongGiaThien.Com.VN “);user.setEmail(“TruongGiaThien.Com.VN vn
gmail.com”);user.setFullName(“GP Coder”);user.setPassword(“1234567”);user.setBankAccount(“9999-9999-9999”);users.add(user);
Overridepublic List getAll() return users;
Overridepublic Optional get(Integer id) return users.stream().filter(u -> u.getId() == id).findFirst();

Xem thêm: Prism Là Gì

Overridepublic void save(UserModel user) users.add(user);
Overridepublic void update(UserModel user) int index = -1;for (UserModel u : users) index++;if (user.getId().equals(u.getId())) users.set(index, user);break;
Overridepublic void delete(UserModel user) get(user.getId()).ifPresent(existUser -> users.remove(existUser));UserDTO.java

package com.TruongGiaThien.Com.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.TruongGiaThien.Com.VN .patterns.other.dto;/** * Business Object / Logic */public class UserService private UserDao dao = new UserDao();public UserDTO getUser(Integer id) UserModel model = dao.get(id).get();return convertToDTO(model);public void saveUser(UserDTO dto) UserModel model = 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.getId());model.setFullName(dto.getFullName());model.setUserName(dto.getUserName());model.setEmail(dto.getEmail());return model;private UserDTO convertToDTO(UserModel model) UserDTO dto = new UserDTO();dto.setId(model.getId());dto.setFullName(model.getFullName());dto.setUserName(model.getUserName());dto.setEmail(model.getEmail());return dto;DataAccessObjectPatternExample.java

package com.TruongGiaThien.Com.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.setFullName(“TruongGiaThien.Com.VN”);service.updateUser(dto);System.out.println(“User Updated: ” + dto);Output của chương trình:

User: UserDTO(id=1, userName=TruongGiaThien.Com.VN , fullName=GP Coder, email=TruongGiaThien.Com.VN vn

Xem thêm: Cá Tính Là Gì – Trở Nên Cá Tính

Bài Nổi Bật  Measles Là Gì - Measles Fact Sheet Thông Tin Về Bệnh Sởi

gmail.com)User Updated: UserDTO(id=1, userName=TruongGiaThien.Com.VN , fullName=TruongGiaThien.Com.VN, email=TruongGiaThien.Com.VN vn
gmail.com)

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

Tách biệt logic một cách rõ ràng : Transfer Object chỉ chứa data, còn logic được implement trong phần khác.Cãi thiện hiệu suất ứng dụng : chi phí của mỗi request/ response là lớn, chúng ta nên cố gắng gửi nhiều nhất khả năng. Để làm điều này, chúng ta khả năng tạo một Transfer Object để gửi data từ Client lên Server hay từ Server đến Client một lần duy nhất, thay vì phải gửi từng phần riêng lẻ.Giảm kết dính giữa các tầng trong ứng dụng: Client chỉ thao tác với Transfer Object, nên nó không bị tác động khi Domain Model thay đổi ngay.Bao đóng các đối số : một phương thức có nhiều đối số, chúng ta khả năng bao đóng chúng trong một Transfer Object. Giúp chúng ta đơn giản mở rộng, thêm/ bớt đối số.Nhận nhiều dữ liệu trả về : trong Java, một phương thức chỉ khả năng trả về một tổng giá trị, để khả năng nhận được nhiều tổng giá trị, chúng ta khả năng bao đóng chúng trong một Transfer Object.Tăng bảo mật ứng dụng : tùy vào người dùng khác nhau khả năng xem được một vài dữ liệu nhất định. Chúng ta khả năng tạo nhiều Transfer Object khác nhau cho từng loại người dùng thay vì trả về một Domain Object một cách trực tiếp. Trường hợp rõ ràng nhất là User Model, domain object này chứa thông tin cả email, password, số tài khoản ngân hàng. Chúng ta khả năng tạo một Transfer Object đơn giản chỉ chứa thông tin họ tên, ngày sinh. Không rất cần thiết phải trả tất cả dữ liệu Domain Model về Client. Tài liệu tham khảo:
Chuyên mục: Hỏi Đáp

Bài Nổi Bật  Major In Là Gì - Major In Something

Các câu hỏi về Dto Là Gì – Dto Conversion Với Model Mapper


Nếu có bắt kỳ câu hỏi thắc mắt nào vê Dto Là Gì – Dto Conversion Với Model Mapper hãy cho chúng mình biết nha, mõi thắt mắt hay góp ý của các bạn sẽ giúp mình nâng cao hơn hơn trong các bài sau nha <3Bài viết Dto Là Gì - Dto Conversion Với Model Mapper ! được mình và team xem xét cũng như tổng hợp từ nhiều nguồn. Nếu thấy bài viết Dto Là Gì - Dto Conversion Với Model Mapper Cực hay ! Hay thì hãy ủng hộ team Like hoặc share. Nếu thấy bài viết Dto Là Gì - Dto Conversion Với Model Mapper rât hay ! chưa hay, hoặc cần bổ sung. Bạn góp ý giúp mình nha!!

Các Hình Ảnh Về Dto Là Gì – Dto Conversion Với Model Mapper

Dto Là Gì - Dto Conversion Với Model Mapper

Các từ khóa tìm kiếm cho bài viết #Dto #Là #Gì #Dto #Conversion #Với #Model #Mapper

Tham khảo thông tin về Dto Là Gì – Dto Conversion Với Model Mapper tại WikiPedia

Bạn nên tham khảo thông tin về Dto Là Gì – Dto Conversion Với Model Mapper từ web Wikipedia.◄

Tham Gia Cộng Đồng Tại

💝 Nguồn Tin tại: https://truonggiathien.com.vn/

💝 Xem Thêm Chủ Đề Liên Quan tại : https://truonggiathien.com.vn/hoi-dap/

Give a Comment