Video: iOS 12 những lỗi khó chịu và cách khắc phục 2025
Tương tác giữa một đối tượng trong bộ nhớ và cơ sở dữ liệu là một cách tiếp cận để làm cho trách nhiệm quản lý các đối tượng liên tục dễ dàng hơn đối với các ứng dụng iOS. Mô hình này được gọi là Trình lập bản đồ dữ liệu. Hình dưới đây cho thấy sự tương tác giữa các lớp trong một phiên bản đơn giản của Mapper dữ liệu.
Về cơ bản, tất cả các hoạt động liên tục truy cập cơ sở dữ liệu (có nghĩa là, tạo, truy xuất, cập nhật và xóa) là trách nhiệm của Người lập chỉ mục dữ liệu. Đơn giản chỉ cần thực hiện các yêu cầu thích hợp của Mapper dữ liệu.
Patterns Data Mapper là một sự trừu tượng mà bạn có thể xử lý các đối tượng liên tục khi việc quản lý vòng đời của chúng phức tạp. Thực tế, với Data Mapper, các đối tượng trong bộ nhớ thậm chí không cần phải biết rằng có một cơ sở dữ liệu hiện tại; họ không cần SQL hoặc bất kỳ kiến thức về giản đồ cơ sở dữ liệu.
Việc triển khai một Mapper dữ liệu rất là phức tạp. Ví dụ, các phương pháp trong Active Record cho thấy rằng một lời gọi (như một phương pháp Finder) kết quả trong một truy vấn SQL. Điều này không phải lúc nào cũng đúng. Chẳng hạn tải một đối tượng có nhiều đối tượng chứa cũng có thể yêu cầu tải các chi tiết đơn hàng. Nếu các đối tượng phức tạp, yêu cầu tìm kiếm có thể tải toàn bộ đồ thị của đối tượng.
Các người bản đồ có thể cần phải xử lý các lớp chuyển thành nhiều trường trong nhiều bảng, các lớp có thừa kế và các đối tượng liên quan khi chúng được tìm nạp từ kho dữ liệu. Lớp lập bản đồ lưu trữ dữ liệu cần phải hiểu đối tượng nào đã thay đổi, những đối tượng mới đã được tạo ra và đã bị phá hủy.
Nếu có nhiều bản cập nhật được thực hiện cho các bản ghi liên tục của một bộ đối tượng, thì tất cả các thao tác này sẽ phải diễn ra bên trong một giao dịch. Mẫu Data Mapper thường cho phép Active Record xử lý các đối tượng đơn lẻ, còn Data Mapper chăm sóc các yêu cầu phức tạp, chẳng hạn như thừa kế, truy xuất sâu và liên kết các đối tượng, các truy vấn dựa trên các mối quan hệ phức tạp, các giao dịch bao gồm một tập hợp các đối tượng,.
Mapper dữ liệu hoạt động như một đối tượng quản lý thật sự trong khi ủy nhiệm các hoạt động cấp đối tượng cho Active Record. Điều này làm cho một thiết kế OO tốt hơn tổng thể vì Mapper gắn kết trách nhiệm quản lý, trong khi Active Record xử lý sự kiên trì đơn giản của đối tượng (cũng gắn kết). Ngoài ra, chính sách quản lý được tách ra khỏi cơ chế kiên trì. Do đó, chính sách quản lý và cơ chế kiên trì được kết hợp lỏng lẻo.
Cuối cùng, mẫu Mapper dữ liệu (với một số biến thể) đã trở thành một phần cốt lõi của iOS với việc cung cấp thành phần Core Data trong iOS.
