Đóng gói vs Trừu tượng
Đóng gói và Trừu tượng là hai khái niệm khác nhau nhưng có liên quan được tìm thấy trong các ngôn ngữ OOP (Lập trình hướng đối tượng). Đóng gói là khái niệm kết hợp dữ liệu và hành vi với nhau như một thực thể duy nhất. Mặt khác, Trừu tượng là quá trình trình bày cách một thực thể cư xử \ trông trái ngược với cách nó được thực hiện.
Đóng gói là gì?
Đóng gói là quá trình gói dữ liệu và hoạt động hoạt động trên chúng vào một thực thể duy nhất. Điều này về cơ bản có nghĩa là để truy cập dữ liệu, nên sử dụng một số phương pháp được xác định trước. Nói cách khác, dữ liệu đóng gói không thể truy cập trực tiếp. Điều này đảm bảo rằng tính toàn vẹn của dữ liệu được bảo tồn do người dùng không thể truy cập trực tiếp và sửa đổi dữ liệu theo ý muốn. Người dùng sẽ nhận hoặc đặt các giá trị dữ liệu chỉ thông qua các phương thức được cung cấp công khai cho người dùng. Các phương thức này thường cung cấp xác thực dữ liệu để chỉ có dữ liệu ở định dạng phù hợp mới được phép chèn vào các trường. Do đó, lợi ích của Đóng gói là ba lần. Thông qua Encapsulation, lập trình viên có thể tạo các trường của một lớp chỉ đọc hoặc viết. Thứ hai, một lớp có thể có toàn quyền kiểm soát những gì được lưu trữ trong các trường của nó. Cuối cùng, người dùng của một lớp không cần phải lo lắng về việc dữ liệu của nó được lưu trữ như thế nào. Trong Java, lập trình viên có thể khai báo tất cả các biến cá thể là riêng tư và cung cấp các phương thức get và set (công khai) để truy cập và sửa đổi các trường riêng.
Trừu tượng là gì?
Trừu tượng là quá trình tách các chi tiết trình bày khỏi các chi tiết thực hiện. Điều này được thực hiện để nhà phát triển giải tỏa các chi tiết triển khai phức tạp hơn. Thay vào đó, lập trình viên có thể tập trung vào phần trình bày hoặc các chi tiết hành vi của thực thể. Nói một cách đơn giản, sự trừu tượng tập trung vào cách một thực thể nhất định có thể được sử dụng thay vì cách nó được thực hiện. Trừu tượng về cơ bản che giấu các chi tiết triển khai, do đó ngay cả khi phương thức thực hiện thay đổi theo thời gian, lập trình viên sẽ không phải lo lắng nó sẽ ảnh hưởng đến chương trình của mình như thế nào. Một hệ thống có thể được trừu tượng hóa trong một số lớp hoặc cấp độ. Ví dụ, các lớp trừu tượng mức thấp sẽ tiết lộ chi tiết phần cứng, trong khi trừu tượng hóa mức cao sẽ chỉ tiết lộ logic kinh doanh của thực thể. Thuật ngữ trừu tượng có thể được sử dụng để chỉ cả một thực thể và một quá trình và điều này dẫn đến một số nhầm lẫn. Như một quá trình, trừu tượng hóa có nghĩa là trích xuất các chi tiết thiết yếu trong khi bỏ qua các chi tiết không cần thiết của một mặt hàng hoặc một nhóm mặt hàng, trong khi với tư cách là một thực thể, trừu tượng có nghĩa là một mô hình hoặc một khung nhìn của một thực thể chỉ có các chi tiết thiết yếu. Trong Java, lập trình viên có thể sử dụng từ khóa trừu tượng để khai báo một lớp là một thực thể trừu tượng, đại diện cho các đặc tính định nghĩa thiết yếu của một thực thể trong thế giới thực.
Sự khác biệt giữa Đóng gói và Trừu tượng là gì?
Mặc dù Encapsulation và Trừu tượng là những khái niệm có liên quan cao được tìm thấy trong các ngôn ngữ Lập trình hướng đối tượng, chúng có những khác biệt chính. Trừu tượng là một kỹ thuật, giúp chúng ta xác định những gì nên nhìn thấy và những gì nên ẩn. Đóng gói là các kỹ thuật để đóng gói thông tin sao cho có thể nhìn thấy những gì cần nhìn thấy và che giấu những gì cần ẩn. Nói cách khác, Đóng gói có thể được xác định là một bước vượt quá trừu tượng. Trong khi sự trừu tượng làm giảm một đối tượng trong thế giới thực xuống các đặc điểm xác định thiết yếu của nó, đóng gói mở rộng ý tưởng này bằng cách mô hình hóa và liên kết chức năng này của thực thể đó.