Tính trừu tượng trong OOP là gì ? Khác gì với Interface

Tính trừu tượng trong OOP là một định nghĩa quan trọng mặc dù vậy nhiều người vẫn thường hiểu sai về nó. Bài content sau sẽ trình cho bạn một số thông tin bạn nên biết về tính chất này.

Tổng quan về Tính trừu tượng trong OOP

Khái niệm

Tính trừu tượng ( Abstraction ) là một trong bốn thuộc tính cơ bản của Lập trình hướng đối tượng người tiêu dùng ( Object-oriented programming – viết tắt là OOP ). Các đặc thù còn lại gồm có : Tính đóng gói ( Encapsulation ), Tính thừa kế ( Inheritance ) và Tính đa hình ( Polymorphism ) .
Hiểu thuận tiện, Tính trừu tượng dùng để chỉ quy trình ẩn việc khai triển trong thực tiễn của một ứng dụng khỏi người sử dụng. Thay vào đó, lập trình viên chỉ nhấn mạnh vấn đề vào cách dùng ứng dụng .

Mục đích

Thông qua Tính trừu tượng, lập trình viên có thể ẩn tất cả dữ liệu hoặc quy trình không liên quan của phần mềm. Đối với người dùng, đấy chỉ là những chi tiết không cần thiết. Từ đó, ta có thể để giảm độ phức tạp & tăng hiệu quả dùng của ứng dụng.

Có thể xem Tính trừu tượng là một phần lan rộng ra của Tính đóng gói. Bạn hoàn toàn có thể khám phá thêm về Tính đóng gói để hiểu hơn về hai thuộc tính này .

Tính trừu tượng trong OOP dùng để ẩn những chi tiết không cần thiết của ứng dụng khỏi người dùng (Nguồn: Unsplash)

Tính trừu tượng trong OOP sử dụng để ẩn những chi tiết cụ thể không quan trọng của ứng dụng khỏi người dùng ( Nguồn : Unsplash )
>> > Xem thêm : Lập trình viên có khó không và những điều cần biết

Ý nghĩa

Một vài ích lợi của Tính trừu tượng hoàn toàn có thể kể đến là :

  • Giao diện người sử dụng đơn thuần, cấp cao.
  • Các đoạn mã phức tạp bị ẩn đi.
  • Nâng cao vấn đề bảo mật, bảo vệ dự liệu không bị lộ.
  • Việc bảo trì ứng dụng đơn thuần hơn.
  • Việc cập nhật hay thay đổi mã sẽ gần như không có khi ảnh hưởng đến Tính trừu tượng.

Hiểu về khái niệm Abtraction bằng VD

Giả sử bạn mong ước tạo một ứng dụng ngân hàng nhà nước và bạn được nhu yếu tích lũy tổng thể thông tin về người mua của bạn .
Có nhiều năng lượng bạn hoàn toàn có thể đưa ra thông tin sau đây về người mua :
Ví dụ về Abstraction trong lập trình hướng đối tượng Java với Ứng dụng Ngân hàng

Ví dụ

 về Abstraction trong lập trình hướng đối tượng Java với 

phần mềm

 Ngân hàng

Nhưng mà, không phải tổng thể những thông tin trên là bắt buộc để tạo một ứng dụng ngân hàng nhà nước .
Bởi vậy, bạn chỉ phải chọn thông tin có ích cho ứng dụng ngân hàng nhà nước của mình từ nhóm đấy. Dữ liệu như tên, địa chỉ, thông tin thuế, v.v … Có ý nghĩa so với ứng dụng ngân hàng nhà nước .
Ví dụ về Ứng dụng Ngân hàng sau khi áp dụng AbstractionVD về ứng dụng Ngân hàng một khi áp dụng Abstraction
vềNgân hàngáp dụng AbstractionVì tất cả chúng ta đã tìm nạp / xóa / chọn thông tin người mua từ một nhóm lớn hơn, tiến trình này có cách gọi khác là Trừu tượng hóa .Nhưng, thông tin tương tự như sau khi được trích xuất hoàn toàn có thể được dùng cho nhiều ứng dụng. Chẳng hạn, bạn sẽ sử dụng cùng một tài liệu cho ứng dụng bệnh viện, ứng dụng cổng thông tin việc làm, cơ sở tài liệu của nhà nước, v.v … Với rất ít hoặc không sửa đổi .
Vì lẽ đó, nó trở thành tài liệu chính của bạn. Đây là một lợi thế của Trừu tượng .
>> > Xem thêm : Các đặc thù của OOP [ Lập trình hướng đối tượng người tiêu dùng ] mới nhất 2020

3. Sự khác nhau giữa abstract và interface

Bảng dưới đây sẽ giúp những em có cái nhìn rõ hơn về sự không giống nhau giữa abstract và interface. Khi nào thì tất cả chúng ta nên dùng abstract hoặc interface cho hài hòa và hợp lý

Các điểm so sánh Abstract Interface
Đa kế thừa Không hỗ trợ đa kế thừa Một class có thể kế thừa nhiều Interface
Default (mặc định) Có thể khái niệm đặc thù , và thân phương thức có thể chứa code chỉ chứa hằng số, không có code trong phần thân method
Access Modifier có thể đặt hàng loạt modifier Mọi phương thức và 

tính chất

 là public

Mục đích sử dụng IS A (quan hệ cha con) HAS A (Can do, có năng lượng làm được việc gì)

Khi nào dùng abstract

  • Khả năng mở rộng không cần xoá hết code làm lại.
  • Tăng tính bảo mật che dấu các dữ liệu quan trọng
  • Khi các lớp có mối liên hệ cha con với nhau Ví dụ như con gà, chó, mèo chúng đều là động vật (Animal)

Khi nào sử dụng interface

  • Mục đích chính của interface là sử dụng cho tính đa hình. năng lượng thực hiện các hành động không giống nhau trên các ngữ cảnh không giống nhau.
  • Chúng ta muốn các lớp không liên quan với nhau liên kết lại với nhau. Anh Ví dụ như mình có phương pháp thanh toán giao dịch HSBC, mình có thanh toán Vietcombank. 2 Class này hoàn toàn không liên quan gì với nhau. VD như trong ứng dụng của anh. Anh mong ước hỗ trợ người dùng cả 2 phương pháp thanh toán giao dịch, có nghĩa là nếu họ có tài khoản bên HSBC họ có thể thực hiện giao dịch thanh toán, chuyển khoản bên Vietcombank. Để triển khai được việc đấy thì 2 class HSBC và Vietcombank phải nói chuyện được với nhau, có nghĩa là 2 class đấy phải có cùng một điểm chung. Thì lúc này anh sẽ tạo ra một Interface là Payment. Sau đó HSBC và Vietcombank cùng implements nó. Như vậy 2 cái đấy sẽ có một điểm chung phải có thể nói chuyện được với nhau.
  • Chúng ta mong ước chú trọng vào hành động hơn về cấu trúc đối tượng.
  • Chúng ta muốn sử dụng đa thừa kế.
  • Tăng cường tính bảo mật. Người dùng chỉ có thể thấy được method 

    thế nhưng

     không thấy được nội dung code bên trong

Kết

Một điểm lưu ý cuối cùng, đó là tùy vào mỗi ngôn ngữ mà Tính trừu tượng sẽ khác nhau. Khi sử dụng ngôn ngữ nào, bạn phải cần nghiên cứu kỹ về Tính trừu tượng của ngôn ngữ đấy. Hy vọng qua bài viết này, các bạn đã hiểu rõ hơn về Tính trừu tượng trong OOP.

Nhật Minh – Tổng hợp và bổ trợ
Nguồn : vn.got-it.ai, niithanoi.edu.vn, levunguyen.com