Trong hướng dẫn này, bạn sẽ học về sự khác biệt giữa trừu tượng và đóng gói và tìm hiểu thêm về:

Định nghĩa trừu tượng

Trừu tượng hóa là một khái niệm OOP chỉ tập trung vào dữ liệu có liên quan của một đối tượng. Nó ẩn các chi tiết nền và nhấn mạnh các điểm dữ liệu cần thiết để giảm độ phức tạp và tăng hiệu quả. Nó thường chỉ giữ lại thông tin phù hợp nhất cho quá trình cụ thể đó. Phương pháp trừu tượng chủ yếu tập trung vào ý tưởng thay vì vận hành thực tế.

Định nghĩa về sự đóng gói

Đóng gói là một phương pháp làm cho một hệ thống phức tạp dễ xử lý hơn đối với người dùng cuối. Người dùng không cần phải lo lắng về các chi tiết bên trong và sự phức tạp của hệ thống. Đóng gói là một quá trình gói dữ liệu và mã, hoạt động trên dữ liệu thành một thực thể duy nhất. Bạn có thể coi nó như một trình bao bọc bảo vệ ngăn truy cập ngẫu nhiên vào mã được xác định bên ngoài trình bao bọc đó.

Sự khác biệt chính giữa trừu tượng và đóng gói

  • Tính trừu tượng chỉ hiển thị dữ liệu hữu ích bằng cách cung cấp các chi tiết cần thiết nhất. Trong khi tính năng Đóng gói bao bọc mã và dữ liệu để có thông tin cần thiết.
  • Tính trừu tượng chủ yếu tập trung vào những gì nên làm. Trong khi Encapsulation tập trung vào cách nó nên được thực hiện.
  • Tính trừu tượng che giấu sự phức tạp bằng cách cung cấp cho bạn một bức tranh trừu tượng hơn. Trong khi Encapsulation ẩn hoạt động bên trong để bạn có thể thay đổi nó sau này.
  • Tính trừu tượng giúp bạn phân vùng chương trình thành nhiều phần độc lập. Trong khi tính năng Đóng gói dễ dàng thay đổi với các yêu cầu mới.
  • Tính trừu tượng giải quyết vấn đề ở cấp độ thiết kế. Trong khi Tính đóng gói giải quyết vấn đề ở cấp độ thực thi.
  • Tính trừu tượng che giấu các chi tiết không liên quan được tìm thấy trong mã. Trong khi tính năng Đóng gói giúp các nhà phát triển tổ chức toàn bộ mã một cách dễ dàng.

Tại sao bạn cần trừu tượng?

Dưới đây là những lý do chính tại sao sự trừu tượng lại cần thiết cho Lập trình hướng đối tượng:

  • Giúp bạn đơn giản hóa việc biểu diễn các mô hình miền.
  • Tính trừu tượng ẩn các chi tiết không liên quan được tìm thấy trong mã.
  • Tính trừu tượng giúp bạn phân vùng chương trình thành nhiều khái niệm độc lập.
  • Mang lại sự linh hoạt cao nhất khi sử dụng các đối tượng ADT (Kiểu dữ liệu trừu tượng) trong các tình huống khác nhau

Tại sao bạn cần Encapsulation?

Những ưu điểm chính của việc đóng gói là

  • Nó cải thiện khả năng bảo trì của một ứng dụng.
  • Cung cấp sự linh hoạt cho người dùng để sử dụng hệ thống rất dễ dàng
  • Giúp các nhà phát triển tổ chức mã tốt hơn
  • Làm cho quá trình viết mã tổng thể dễ dàng hơn, vì bạn chỉ quan tâm đến những gì lớp khác làm, chứ không phải cách nó thực hiện
  • Phương pháp này giúp các nhà phát triển ‘khách quan’ hơn và định hướng kết quả.
  • Encapsulated Code khá linh hoạt và dễ thay đổi theo yêu cầu mới.
  • Tính năng đóng gói giúp việc kiểm tra đơn vị trở nên dễ dàng.
  • Nó cho phép bạn giảm sự ghép nối các mô-đun và tăng sự gắn kết bên trong một mô-đun vì tất cả các phần của một thứ được gói gọn ở một nơi.
  • Tính năng đóng gói giúp bạn thay đổi một phần mã mà không ảnh hưởng đến các phần khác của mã.
  • Cải thiện khả năng đọc mã của Ứng dụng
  • Tăng cường bảo mật và giúp bảo trì ứng dụng dễ dàng hơn
  • Giao diện đóng gói chỉ cho phép tương tác được xác định rõ.

Ví dụ về trừu tượng

Giả sử bạn muốn tạo một ứng dụng ngân hàng và bạn được yêu cầu thu thập tất cả thông tin về khách hàng của mình. Có khả năng bạn sẽ đưa ra những thông tin sau đây về khách hàng.

Tuy nhiên, không phải tất cả các thông tin trên đều được yêu cầu để tạo một ứng dụng ngân hàng.

Vì vậy, bạn chỉ cần chọn thông tin hữu ích cho ứng dụng ngân hàng của mình từ nhóm đó. Dữ liệu như tên, địa chỉ, thông tin thuế, v.v. có ý nghĩa đối với ứng dụng ngân hàng.

Vì chúng tôi đã tìm nạp / xóa / chọn thông tin khách hàng từ một nhóm lớn hơn, quá trình này được gọi là Tóm tắt.

Tuy nhiên, cùng một thông tin sau khi được trích xuất có thể được sử dụng cho một loạt các ứng dụng. Ví dụ: bạn có thể sử dụng cùng một dữ liệu cho đơn đăng ký bệnh viện, ứng dụng cổng thông tin việc làm, cơ sở dữ liệu của Chính phủ, v.v. mà không hoặc ít sửa đổi. Do đó, nó trở thành Dữ liệu chính của bạn. Đây là một lợi thế của Trừu tượng.

Ví dụ về đóng gói

Hãy lấy một ví dụ về thiết bị di động. Với sự trợ giúp của thiết bị di động, bạn có thể thực hiện nhiều chức năng khác nhau như chụp ảnh, gửi tin nhắn, ghi video / âm thanh, truy cập web và hơn thế nữa.

Các tính năng được đề cập ở trên là chức năng của hầu hết các điện thoại thông minh. Tuy nhiên, bạn không cần phải hiểu chi tiết hoạt động bên trong của các tính năng đó trước khi sử dụng chương trình này. Ví dụ, bạn không cần biết cách máy ảnh của mình tính toán hiệu chỉnh gamma hoặc xác định khuôn mặt người trong ảnh. Bạn chỉ cần tìm hiểu giao diện phần mềm. Đây là sự đóng gói.

Sự khác biệt giữa trừu tượng và đóng gói

khác biệt giữa trừu tượng và đóng gói
khác biệt giữa trừu tượng và đóng gói
Tham số Trừu tượng Đóng gói
Dùng cho Tính trừu tượng giải quyết vấn đề và các vấn đề nảy sinh ở giai đoạn thiết kế. Đóng gói giải quyết vấn đề và vấn đề phát sinh ở giai đoạn thực hiện.
Tiêu điểm Tính trừu tượng cho phép bạn tập trung vào những gì đối tượng làm thay vì cách nó thực hiện Tính năng đóng gói cho phép bạn ẩn mã và dữ liệu thành một đơn vị duy nhất để bảo mật dữ liệu khỏi thế giới bên ngoài.
Thực hiện Bạn có thể sử dụng tính trừu tượng bằng cách sử dụng Giao diện và Lớp trừu tượng. Bạn có thể triển khai đóng gói bằng Access Modifier (Public, Protected & Private.)
Tiêu điểm Tập trung chủ yếu vào những việc nên làm. Tập trung chủ yếu vào cách nó nên được thực hiện.
Ứng dụng Trong cấp thiết kế. Trong cấp độ Thực hiện.

 

Tham khảo thêm bài viết Mean Stack Developer là gì? Kỹ năng, Tiền lương, Tăng trưởng