4. Tóm tắt cấu trúc của luận văn
1.3. Một số mẫu thiết kế ựiển hình trong các ứng dụng quản lý
1.3.10. Mẫu đối tượng chuyển ựổi dữ liệu
1.3.10.1. Ý nghĩa
đối tượng chuyển ựổi dữ liệu (DataTransfer Object) là một mẫu dùng ựể chứa dữ liệu giữa các tiến trình nhằm làm giảm số lần gọi các thông ựiệp.
Hình 1.14: Cấu trúc mẫu Data Transfer Object
Khi ta làm việc với một giao diện từ xa như Remote Faẫade, mỗi lời gọi như vậy thường tốn nhiều chi phắ. Do vậy ta sẽ cần phải giảm số lần gọi, hay nói cách khác là chúng ta cần truyền nhiều dữ liệu hơn trong mỗi lần gọi. Có một cách ựể làm ựược ựiều ựó là sử dụng nhiều tham số. Tuy nhiên ựiều này gây khó khăn cho việc lập trình, hơn nữa việc này là không thể ựối với các ngôn ngữ như là Java khi mà giá trị nó trả về chỉ là ựơn giá.
Giải pháp là tạo ra một DataTransfer Object ựể chứa tất cả dữ liệu cho lần gọi. Nó cần ựược chuỗi hóa ựể truyền qua ựược các kết nối. Thông thường một bộ thông dịch ựược sử dụng ở phắa máy chủ ựể truyền dữ liệu giữa Data Transfer Object và các ựối tượng miền bất kỳ.
1.3.10.2. Mô tả
Data Transfer Object thường bao gồm một loạt các trường, cùng với các trình
xuất/gán (getter/setter) của chúng. Nó cho phép chúng ta chuyển nhiều phần thông tin thông qua mạng bằng chỉ một lời gọi ựơn lẻ, ựây là một thủ thuật cơ bản của các hệ thống phân tán.
Khi nào một ựối tượng từ xa cần ựến dữ liệu, nó sẽ gọi ựến một ựối tượng Data
TransferObject thắch hợp. DataTransferObject thường sẽ mang nhiều dữ liệu hơn những
gì mà ựối tượng từ xa yêu cầu, toàn bộ các dự liệu này ựược mang vì sẽ có khi ựối tượng từ xa cần dùng ựến nó. Vì chi phắ cho ựộ trễ của các lời gọi từ xa nên tốt hơn là có những lỗi ở nơi gửi hơn là phải thực hiện nhiều lời gọi.
Một Data Transfer Object thường chứa nhiều hơn thay vì chỉ một ựối tượng riêng
lẻ trên máy chủ. Nó cộng gộp dữ liệu từ tất cả các ựối tượng trên máy chủ mà ựối tượng từ xa muốn lấy. Vắ dự nếu ựối tượng từ xa yêu cầu dữ liệu về ựối tượng đơn hàng, ựối tượng DataTransferObject ựược trả về sẽ chứa dữ liệu ựơn hàng, khách hàng, các mục trên ựơn hàng, sản phẩm trên ựơn hàng, thông tin giao hàng, Ầ
1.3.10.3. Chuỗi hóa Data Transfer Object
Các trường dữ liệu trên DataTransferObject thường rất ựơn giản, ựó có thể là các kiểu nguyên thủy, là các lớp ựơn giản như String, Date hoặc có thể là các ựối lớp Data
Transfer Object khác. để chuyển ựổi ựược các ựối tượng trong Data Transfer Object
thông qua mạng, ta cần có các phương pháp ựể chuỗi hóa nó.
Không chỉ có các getter, setter, Data Transfer Object còn phải có trách nhiệm rời rạc hóa chắnh bản thân nó ựể thành các ựịnh dạng có thể truyền ựược qua mạng. Chuyển qua ựịnh dạng nào là phụ thuộc vào kết nối và ựộ khó của việc chuỗi hóa. Một loại các nền (platform) cung cấp sẵn việc chuỗi hóa cho một số ựối tượng ựơn giản, vắ dụ Java có sẵn chuỗi hóa ở dạng nhị phân, .NET có sẵn chuỗi hóa ở dạng nhị phân và XML.
Thông thường, nếu Data Transfer Object là ựơn giản thì ta sẽ sử dụng ựược các cơ chế chuỗi hóa có sẵn. Trong trường hợp ngược lại, nếu ta không dùng ựược cơ chế chuỗi hóa tự ựộng thì ta sẽ phải tự tạo cơ chế chuỗi hóa cho riêng mình.
1.3.10.4. Các tình huống áp dụng
DataTransferObject ựược sử dụng khi ta cần truyền nhiều ựối tượng giữa hai tiến
trình trong một lời gọi hàng riêng lẻ. Có một số trường hợp tương tự hay dùng Data
TransferObject, ựó là việc dùng ựể ựơn giản hóa các phương thức Setting có nhiều tham
TỔNG QUAN VỀ HỆ THỐNG HOẠCH đỊNH NGUỒN LỰC DOANH NGHIỆP - ERP