Sự khác nhau giữa lập trình hướng cấu trúc và hướng đối tượng

Sự khác nhau giữa lập trình hướng cấu trúc và hướng đối tượng
Bạn đã biết gì về OPP và POP, hãy cùng tìm hiểu về sự khác nhau giữa hai cách lập trình này xem chúng khác nhau như thế nào nhé!

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

Lập trình hướng cấu trúc (Procedure Oriented Programming – POP) là một kỹ thuật lập trình, trong đó các chương trình được chia thành các hàm (chương trình con). Mỗi chương trình còn được chia thành nhiều hàm khác nhau để đơn giản hóa công việc của chúng (quá trình làm mịn).

- Ví dụ về chương trình nhập và hiển thị thông tin người dùng được chia thành hai quy trình khác nhau là nhập và xuất thông tin, nếu chương trình nhập phức tạp sẽ được chia thành nhiều chương trình con để tiện xử lý thông tin.

Trong lập trình hướng cấu trúc người ta thường quan tâm đến việc phát triển các hàm mà ít quan tâm đến dữ liệu (thứ mà để xử lý công việc). Điều này khiến dữ liệu khó kiểm soát. Để liên kết giữa các hàm với nhau ta dùng biến toàn cục hoặc con trỏ. 

Sự khác nhau giữa lập trình hướng cấu trúc và hướng đối tượng

Tính chất cơ bản của POP

- Nó cho phép dữ liệu chuyển động quanh hệ thống.

- Phần lớn các hàm sử dụng chung dữ liệu.

- Dữ liệu được chuyển đổi  chức năng từ dạng này sang dạng khác.

- Sử dụng cách tiếp cận top-down trong thiết kế chương trình.

- Tập trung vào công việc cần thực hiện (thuật toán).

Ưu điểm của POP

  • Cung cấp khả năng tái sử dụng cùng một mã tại nhiều nơi khác nhau.
  • Tạo điều kiện trong việc theo dõi dòng chương trình.
  • Có khả năng xây dựng các mô-đun.

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

Lập trình hướng đối tượng (Oject Oriented Programing - OOP) là một kỹ thuật lập trình, các chương trình được chia thành các phần nhỏ gọi là đối tượng (Oject). Các đối tượng trong lập trình này thường tương ứng với các thực thể trong bài toán, nó sẽ có các thuộc tính (attribute) và các hành động (method). Trong lập trình hướng đối tượng các đối tượng có thể tương tác qua lại.

Các ngôn ngữ được sử dụng: Java, C#, Python, Ruby, Swift, Object-C. Các tính chất cơ bản của lập trình hướng đối tượng: tính trừu tượng, tính đóng gói, tính đa hình, tính kế thừa . Lập trình hướng đối tượng được đánh giá là dễ học, năng suất, đơn giản, dễ bảo trì, dễ mở rộng...

Sự khác nhau giữa lập trình hướng cấu trúc và hướng đối tượng

Ưu điểm của lập trình OPP

  • Hệ thống hướng đối tượng có thể được nâng cấp dễ dàng.
  • Mô-đun lớn hơn có thể đạt được.
  • Trừu tượng dữ liệu làm tăng độ tin cậy.
  • Linh hoạt do các khái niệm ràng buộc năng động.
  • Tách riêng các đặc điểm kỹ thuật cần thiết từ việc thực hiện bằng cách sử dụng ẩn thông tin.
  • Mã có thể được mở rộng bằng việc sử dụng lại.

Điểm khác nhau giữa OPP và POP

OppPOP
Định nghĩaTập trung vào dữ liệu hơn là thuật toán.Tập trung vào xây dựng các hàm và thuật toán là chủ yếu.
Chương trìnhChia chương trình thành các đối tượng.Chia chương trình thành các hàm.
Khả năng truy cậpChia ra các modifier: Private, Public, Protected, Default.Không có chế độ truy cập cụ thể.
Điều khiển dữ liệuBị giới hạn quyền truy cập bởi các đối tượng khác.Dữ liệu có thể tự do truy cập giữa các hàm.
Bảo mậtCó tính bảo mật cao vì bị giới hạn quyền truy cậpTính bảo mật thấp.
Chỉnh sửaDễ thêm dữ liệu vào thông qua các đối tượng.Khó thêm dữ liệu mới vào.

Và một số điểm khác nhau như: POP không hỗ trợ khái niệm Overloading/polymorphism. Ngược lại, OOP hỗ trợ Quá tải / Đa hình; nghĩa là sử dụng cùng tên hàm để thực hiện các chức năng khác nhau. Chúng ta có thể Overload các hàm, hàm tạo và toán tử trong OOP. Không có khái niệm về các lớp ảo trong POP; Ngược lại, OOP có các hàm ảo hỗ trợ đa hình.

Sự khác nhau giữa lập trình hướng cấu trúc và hướng đối tượng

OOP ra đời khắc phục các sai sót của POP bằng cách đưa ra khái niệm về đối tượng và các lớp. Nó tăng cường bảo mật dữ liệu và tự động khởi tạo & clear-up các đối tượng. OOP cho phép tạo nhiều phiên bản của đối tượng mà không có bất kỳ sự can thiệp nào.