So sánh lập trình hướng đối tượng và lập trình hướng cấu trúc

Mặc dù đều là kỹ thuật lập trình sử dụng ngôn ngữ bậc cao, nhưng nếu so sánh lập trình hướng đối tượng và lập trình hướng cấu trúc thì ta có thể dễ dàng phát hiện những điểm không tương đồng giữa 2 phương pháp này. Vậy chúng khác nhau như thế nào? Cùng tìm hiểu qua bài viết dưới đây. 

So sánh lập trình hướng đối tượng và lập trình hướng cấu trúc
So sánh lập trình hướng đối tượng và lập trình hướng cấu trúc

1. Đặc điểm của lập trình hướng đối tượng và lập trình hướng cấu trúc

1.1. Lập trình hướng đối tượng 

Lập trình hướng đối tượng (OOP) là kỹ thuật lập trình dựa trên “công nghệ đối tượng”, tạo ra các đối tượng trong code trừu tượng hóa các đối tượng thực tế trong thế giới thực. Đối tượng trong OOP có thuộc tính và phương thức. Chúng có thể tương tác qua lại lẫn nhau.

Lập trình hướng đối tượng
Lập trình hướng đối tượng

OOP có 4 tính chất: 

  • Encapsulation – tính đóng gói: các phương thức và dữ liệu có mối quan hệ với nhau được lưu vào một lớp để thuận tiện cho việc quản lý, sử dụng. Chỉ có phương thức nội tại của chính đối tượng mới có thể thay đổi trạng thái nội tại của nó.
  • Abstraction – tính trừu tượng: chỉ tập trung vào những thuộc tính và phương thức cần thiết cho việc giải quyết vấn đề trong lập trình và bỏ qua các thông tin không quan trọng. 
  • Inheritance – tính kế thừa: các đối tượng “con” có thể thừa hưởng các đặc tính có sẵn từ đối tượng “cha” mà không cần định nghĩa lại (tùy theo ngôn ngữ lập trình).
  • Polymorphism – tính đa hình: các đối tượng không cùng một lớp, khi tiếp nhận cùng một thông điệp thì sẽ phản hồi theo những cách khác nhau.    

1.2. Lập trình hướng cấu trúc 

Lập trình hướng cấu trúc (POP) là kỹ thuật lập trình chia nhỏ một chương trình lớn thành các chương trình con (còn được gọi là các hàm). Mỗi hàm sẽ đảm nhiệm một chức năng khác nhau trong hệ thống. Quá trình phân nhỏ sẽ được thực hiện cho đến khi ra được các hàm đơn giản nhất. Mục đích của việc này là để đơn giản hóa cấu trúc của chương trình, thuận tiện cho việc kiểm tra, sửa đổi và thực thi một cách hiệu quả. 

Lập trình hướng cấu trúc
Lập trình hướng cấu trúc

POP có đặc điểm: 

  • Chỉ tập trung vào việc phát triển các hàm, ít chú trọng đến dữ liệu
  • Dữ liệu của hệ thống di chuyển từ hàm này qua hàm khác, được dùng chung giữa các hàm. 
  • Tuân theo hình thức tiếp cận top-down khi thiết kế chương trình 
  • Dùng con trỏ hoặc biến toàn cục để liên kết các hàm với nhau

2. So sánh lập trình hướng đối tượng và lập trình hướng cấu trúc

Có rất nhiều điểm khác biệt giữa lập trình hướng đối tượng và lập trình hướng cấu trúc mà bạn nên quan tâm như: 

Trọng tâm

OOP chú ý vào dữ liệu hơn là thuật toán. POP chú ý đến việc xây dựng các hàm và thuật toán hơn là dữ liệu.  

Sự phân chia

OOP chia nhỏ chương trình thành các đối tượng. POP chia nhỏ chương trình thành các hàm con. 

Chế độ truy cập

Các từ khóa phạm vi truy cập trong OOP được chia thành Public, Private, Protected và Default. POP không có thành phần này. 

Hướng tiếp cận khi thiết kế chương trình

OOP tiếp cận từ dưới lên. POP tiếp cận từ trên xuống.

Quá trình thực thi

OOP cho phép các chức năng chạy cùng một lúc. POP cho phép các hàm và chức năng chạy lần lượt. 

Truy cập dữ liệu

OOP hạn chế truy cập dữ liệu giữa các đối tượng. POP cho phép dữ liệu tự do di chuyển trong hệ thống và các hàm có thể chia sẻ dữ liệu cho nhau. 

Bảo mật

OOP ẩn dữ liệu trong chế độ Public, Protected và Private nên có bảo mật cao. POP không có chế độ ẩn dữ liệu, độ an toàn thấp. 

Thêm mới dữ liệu

Hoạt động này có thể được thực hiện dễ dàng với các đối tượng trong OOP, còn POP thì khó hơn. 

Nạp chồng/Đa hình

OOP hỗ trợ nạp chồng các hàm, hàm tạo và toán tử còn POP thì không. 

Ứng dụng

OOP có thể áp dụng trong xây dựng các chương trình có độ phức tạp cao. POP chỉ nên được dùng với chương trình đơn giản. 

Sự ra đời của phương pháp OOP đã khắc phục được nhược điểm của kỹ thuật  POP truyền thống, giúp ích cho lập trình viên trong quá trình xây dựng các chương trình. Nếu bạn muốn tìm hiểu thông tin về so sánh lập trình hướng đối tượng và lập trình hướng cấu trúc thì đây chính là bài viết dành cho bạn.   

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

branding
branding
February 06, 2021
0
Share this post to:
Tags:
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
So sánh lập trình hướng đối tượng và lập trình hướng cấu trúc

So sánh lập trình hướng đối tượng và lập trình hướng cấu trúc

Mặc dù đều là kỹ thuật lập trình sử dụng ngôn ngữ bậc cao, nhưng nếu so sánh lập trình hướng đối tượng và lập trình hướng cấu trúc thì ta có thể dễ dàng phát hiện những điểm không tương đồng giữa 2 phương pháp này. Vậy chúng khác nhau như thế nào? Cùng […]
Các ngôn ngữ lập trình hướng đối tượng phổ biến

Các ngôn ngữ lập trình hướng đối tượng phổ biến

Các ngôn ngữ lập trình hướng đối tượng là một trong những mảng kiến thức quan trọng mà bạn nhất định không thể bỏ qua khi học về lập trình hướng đối tượng. Chúng cung cấp rất nhiều lợi ích thiết thực cho bạn trong việc xây dựng các ứng dụng web cũng như phát […]
Các cách lập trình hướng đối tượng trong JavaScript

Các cách lập trình hướng đối tượng trong JavaScript

Áp dụng lập trình hướng đối tượng trong JavaScript là việc không hề đơn giản, đặc biệt là với những ai mới bắt đầu tiếp cận với kỹ thuật này. Bài viết dưới đây giới thiệu về OOP và gợi ý cho bạn 4 thủ thuật để hiện thực các đặc tính của nó với […]
3 tips rèn luyện tư duy lập trình hướng đối tượng

3 tips rèn luyện tư duy lập trình hướng đối tượng

Tư duy lập trình hướng đối tượng là một trong những kỹ năng vô cùng quan trọng mà developer cần có. Bài viết dưới đây sẽ bật mí cho bạn những cách để trau dồi và nâng cao tư duy hướng đối tượng hiệu quả.  Mục lục1. Định nghĩa tư duy lập trình hướng đối […]
Lập trình hướng đối tượng Python và nguyên lý

Lập trình hướng đối tượng Python và nguyên lý

Lập trình hướng đối tượng Python là một kỹ thuật hỗ trợ và cho phép các lập trình viên làm việc một cách trực tiếp với các đối tượng mà họ định nghĩa lên. Python là một ngôn ngữ lập trình khá mạnh giúp tạo ra và sử dụng đối tượng vô cùng dễ dàng. […]
Cơ sở dữ liệu hướng đối tượng là gì? Có những ưu nhược điểm nào?

Cơ sở dữ liệu hướng đối tượng là gì? Có những ưu nhược điểm nào?

Cơ sở dữ liệu hướng đối tượng (CSDL HĐT) là khái niệm quen thuộc với các bạn trẻ đang theo học lập trình hướng đối tượng. Trong bài viết này, bạn sẽ hiểu rõ hơn về ưu nhược điểm của cơ sở dữ liệu hướng đối tượng và các hệ quản trị phổ biến nhất […]