Trình bày tổng quát cho data abstraction

Chúng ta đã làm quen với data abstraction, một phương pháp tuyệt vời cho việc tạo ra cấu trúc các hệ thống như cách một chương trình có thể độc lập trong việc lựa chọn việc thao tác các data object trong chương trình. Ví dụ, cách tách biệt các nhiệm vụ thiết kế một chương trình sử dụng các phân số từ chủ đề thực thi các phân số trong điều khoản của cơ chế cơ sở của ngôn ngữ máy tính cho việc khởi tạo dữ liệu phức hợp. Ý tưởng là khởi xướng ranh giới abstraction – trong trường hợp này, selector và constructor cho các phân số ( make-rat, numer, demon) – chúng tách biệt cách các phân số được sử dụng để trình bày cơ sở trong điều khoảng của cấu trúc list. Một ranh giới tương tự tách biệt chi tiết các procedures trình diễn đại số của phân số ( add-rat, sub-rat, mul-rat và div-rat) từ các procedure bậc cao nó sử dụng các phân số. Kết quả được trình bày trong bài trước.

Ranh giới của các data abstraction là các công cụ hữu ích cho việc kiểm soát độ phức tạp của chương trình. Bằng việc tách biệt việc trình bày cở bản của các data object, chúng ta có thể chia các nhiệm vụ thiết kế các chương trình lớn thành các nhiệm vụ nhỏ hơn và thực hiện các nhiệm vụ tách biệt. Nhưng loại data abstraction không đủ mạnh mẽ, vì nó không đủ để nói rằng ” việc trình bày cơ sở” cho một data object.

Đối với một thứ, có lẽ nhiều hơn một sự trình bày hữu dụng cho một data object, và chúng ta có lẽ muốn thiết kế các hệ thống có thể giải quyết việc trình bày data đa dạng hơn. Để làm một ví dụ đơn giản, các số phức tạp có lẽ được trình bày trong hai cách cơ bản sau: trong định nghĩa hình chữ nhật( thật và tưởng tượng) và polar form. Thật sự, nó là cách hoàn hảo để tưởng tượng một hệ thống trong các số phức tạp được trình bày trong cả hai cách, và với nó các procedure thao tác các số phức tạp hoạt động.

Quan trọng hơn hết, các hệ thống lâp trình thường được thiết kế bởi nhiều người làm việc trên các giai đoạn khác nhau, vấn đề yêu cầu thay đổi liên tục. Như trong một môi trường, đơn giản không thể cho bất kỳ ai đồng ý chọn lựa việc trình bày data trước. Vì vậy thêm ranh giới data-abstraction tách biệt việc trình bày chúng để sử dụng, chúng ta cần ranh giới của các abstraction tách biệt hoàn toàn từ việt lựa chọn thiết kế mỗi cái khác nhau và cho phép sự lựa chọn khác cùng tồn tại trong một chương trình đơn. Hơn nữa, từ đó các chương trình lớn thường được tạo bởi đồng thời các module khác nhau được thiết kế tách biệt, chúng ta cần một sự tiện lợi để cho phép các lập trình viên cùng hợp tác lẫn nhau vào hệ thống lớn, vì vậy không cần phải thiết kê hay thực thi lại các module này.

Trong bài này, chúng ta sẽ học cách làm việc với data được trình bày trong các cách khác nhau bởi các phần khác nhau của chương trình. Nó yêu cầu sự khởi tạo các procedure chung – các procedure có thể hoạt động trên data được trình bày trong nhiều hơn một cách. Kỹ thuật chính để tạo thành các procedure chung sẽ cần để hoạt động trong các terms của data object nó sử dụng loại “tag”, data object bao gồm thông tin rõ ràng về cách chúng được xử lý. Chúng ta sẽ thảo luận việc lập trình hướng dữ liêu, một chiến lược thực thi mạnh mẽ và tiện lợi để thêm các hệ thống nhúng với các hoạt động chung.

Chúng ta bắt đầu ví dụ về các số phức tạp đơn giản. Chúng ta sẽ nhìn thấy cách loại “tag” và phong cách data-direct giúp chúng ta thiết kêt việt trình bày tách biệt rectangular và polar cho các số phức trong khi vẫn giữ được khái niệm về một abstract “số phức” . Chúng ta sẽ đạt được điều này bằng cách định nghĩa các procedure đại số cho các số phức (add-complex, sub-complex, mul-complex. và div-complex) trong điều khoản là selector để truy xuất các phần của số phức độc lập cách các số được trình bày. Kết quả của hệ thống số phức được chỉ ra trong hình 2.19, bao gồm hai loại ranh giới abstraction khác nhau. Trục dọc đóng vai trò tách biệt các tính toán ở mức cao hơn từ sự trình bày ở mức thấp hơn. Hơn nữa, cũng có một ranh giới ngang cho chúng ta khả năng thiết kế tách biệt và cài đặt các sự trình bày thay thế.

Hình 2.19

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *