OOP là mô hình lập trình phổ biến nhất. Nó được giảng dạy như một tiêu chuẩn lập trình cho các lập trình viên. Hãy cùng tìm hiểu về 4 tính chất của OOP nhé.
Mục lục
1. OOP là gì?
Trước hết, hãy cùng tìm hiểu OOP là gì. OOP là từ viết tắt cho cụm từ Object Oriented Programming. Object Oriented Programming nghĩa là lập trình hướng đối tượng. Đây là một cách lập trình máy tính hay còn gọi là thiết kế phần mềm. ập trình viên sẽ xác định dạng dữ liệu của một cấu trúc dữ liệu, loại hàm có thể áp dụng cho cấu trúc dữ liệu đó. Bằng cách này, cấu trúc dữ liệu trở thành một đối tượng bao gồm cả dữ liệu và hàm.
Ngoài ra, lập trình viên có thể xây dựng mối liên hệ giữa một đối tượng này với một đối tượng khác. Ví dụ, các đối tượng có thể kế thừa các đặc tính của đối tượng khác. (Đây là một tính chất của OOP, sẽ được nhắc đến kỹ hơn ở phía sau).
Lợi thế của OOP so với lập trình thủ tục là chúng cho phép lập trình viên tạo ra các mô đun không cần thay đổi khi một dạng dữ liệu mới được thêm vào. Họ có thể dễ dàng tạo ra một đối tượng mới, mang nhiều đặc tính của một đối tượng có sẵn. Điều này khiến cho OOP dễ dàng chỉnh sửa.
Khi sử dụng OOP, một phần mềm sẽ được thiết kế xoay quanh các dữ liệu, hay đối tượng. Một đối tượng có thể được xác định là một trường dữ liệu có những tính chất và hành vi riêng biệt.
Hơn nữa, OOP tập trung vào các đối tượng, thay vì logic mà lập trình viên sẽ sử dụng. Cách tiếp cận này phù hợp với chương trình lớn, phức tạp, được cập nhật chủ động hay duy trì.
2. Bốn tính chất của OOP
Định nghĩa về OOP có lẽ sẽ khiến nhiều người mơ hồ. Để hiểu rõ hơn về OOP, hãy cùng tìm hiểu về tính chất của OOP. OOP có 4 tính chất: đóng gói, trừu tượng, kế thừa và đa hình. Đây cũng là 4 trụ cột của OOP.
2.1. Tính đóng gói
Các đối tượng khác nhau của mỗi chương trình sẽ cố gắng tương tác với nhau một cách tự động. Nếu một lập trình viên muốn ngăn cản sự tương tác giữa các đối tượng thì phải đóng gói các đối tượng vào những class riêng biệt. Thông qua đóng gói, các class sẽ không thay đổi và tương tác với những biến hay hàm cụ thể của một đối tượng.
Bạn hãy nghĩ đến một vỉ thuốc. Trong vỉ thuốc này có các viên thuốc, mỗi viên thuốc lại được đóng gói bằng bao phim. Tương tự như vậy, đóng gói hoạt động theo hướng kỹ thuật số, tạo nên một hàng rào bảo vệ. Hàng rào này ngăn cách đối tượng với những mã code xung quanh. Lập trình viên có thể tạo một bản sao của đối tượng những phần khác của chương trình hay những chương trình khác.
2.2. Tính trừu tượng
Tính trừu tượng giống như một phiên bản mở rộng của tính đóng gói vì nó giấu đi những tính chất và phương thức cụ thể để giao thức của các đối tượng đơn giản hơn. Lập trình viên sử dụng tính trừu tượng cho vài lý do có ích khác. Nhìn chung, tính trừu tượng giúp cô lập ảnh hưởng của sự thay đổi mã code. Mục tiêu là nếu có sai sót gì xảy ra, ảnh hưởng của sự thay đổi là không nhiều.
Một ví dụ đơn giản, thực tế là chiếc điện thoại của bạn. Bạn sử dụng một vài nút nhất định để tương tác với điện thoại của mình. Nhưng cụ thể chiếc điện thoại hoạt động như thế nào thì bạn không biết, vì các chi tiết hoạt động đã bị giấu đi. Khi có sự thay đổi, như hệ điều hành cập nhật, cách bạn sử dụng điện thoại gần như không đổi.
2.3. Tính kế thừa
Tính đóng gói và tính trừu tượng giúp chúng ta phát triển và duy trì một cơ sở mã lớn. Nhưng một vấn đề của OOP là các đối tượng thường rất giống nhau. Chúng có chung logic thực hiện, nhưng không thật sự giống nhau.
Để tái sử dụng logic chung này và trích những logic cụ thể vào một class riêng, bạn có thể sử dụng tính kế thừa. Có nghĩa là bạn tạo ra một lớp con từ lớp cha. Bằng cách này, chúng ta tạo được một trật tự. Lớp con sẽ sử dụng tất cả các field và method của lớp cha và có thể có thêm những phần riêng biệt của nó.
2.4. Tính đa hình
Giả sử chúng ta đã có một lớp cha và một vài lớp con kế thừa. Đôi khi chúng ta muốn sử dụng một tập hợp, ví dụ một danh sách các lớp con này. Hay chúng ta có một method riêng cho class cha, nhưng nếu ta cũng muốn sử dụng method này cho class con?
Tính đa hình đưa ra cách sử dụng một lớp con giống hệt như lớp cha để không có sự nhầm lẫn, bối rối nào giữa các dạng khác nhau. Nhưng mỗi lớp con vẫn giữ nguyên method của mình. Điều này thường xảy ra khi tái sử dụng một giao thức lớp cha. Nó đưa ra những method phổ biến, rồi mỗi lớp con thực hiện phiên bản method riêng của nó.
Với bài viết trên, hy vọng các bạn đã có được cái nhìn cụ thể hơn về OOP nói chung và 4 tính chất của OOP nói riêng. Chúc bạn thành công trên lĩnh vực lập trình.
Got It Vietnam – Tham khảo: TechTarget, Indeed, freeCodeCamp, Educative