Lập trình hướng đối tượng và lập trình hướng cấu trúc là hai phương pháp lập trình. Trong bài viết này chúng ta sẽ cùng tìm hiểu sự khác biệt giữa OOP và POP.
Lập trình hướng đối tượng (Object Oriented Programming - OOP) là phương pháp lập trình lấy đối tượng làm nền tảng để xây dựng chương trình. Đối tượng là sự gắn kết giữa dữ liệu của đối tượng và các phương thức thao tác trên dữ liệu đó. Để thiết kế một chương trình bằng phương pháp lập trình hướng đối tượng, ta sử dụng các lớp và các đối tượng.
Trong đó đối tượng là thực thể mang tính vật lý, nó có trạng thái và hành vi. Còn lớp là một tập hợp các đối tượng có cùng trạng thái và hành vi hay là một nhóm các đối tượng có các thuộc tính chung. Nó mang tính logic.
Lập trình hướng cấu trúc (Procedure Oriented Programming - POP) hay còn được gọi là lập trình hướng thủ tục là kỹ thuật lập trình truyền thống, trong đó các chương trình được chia thành các hàm (chương trình con) để giải quyết công việc của chúng.
Để so sánh OOP và POP ta sẽ phân tích hai phương pháp này theo hướng tiếp cận, phương pháp thực hiện, phạm vi truy cập và khả năng bảo mật,... của cả hai phương pháp.
OOP sử dụng hướng tiếp cận down - top (từ dưới lên) để thiết kế chương trình.
Còn POP lại sử dụng hướng tiếp cận top - down (từ trên xuống).
Các chương trình sử dụng phương pháp OOP được định nghĩa bởi các lớp, các lớp chứa các thuộc tính và phương thức. Lớp tạo đối tượng, các đối tượng này sẽ có các thuộc tính và phương thức được định nghĩa trong lớp và quản lý chúng.
Đối với POP, chương trình sẽ được chia ra nhiều hàm để giải quyết.
OOP có các phạm vi truy cập khác nhau: private, public, protected, default, mỗi phạm vi truy cập sẽ có khả năng truy cập riêng, giúp đóng gói và bảo mật dữ liệu tốt hơn. Dữ liệu và phương thức của một đối tượng giống như một thành phần riêng biệt và bị hạn chế truy cập bởi các đối tượng khác.
Trong khi đó POP thì không và dữ liệu có thể truy cập tự do giữa các hàm.
Trọng tâm chính của OOP là bảo mật dữ liệu vì chỉ các đối tượng của một lớp mới được phép truy cập các thuộc tính hoặc chức năng của lớp đó
Còn trọng tâm chính của POP là về cách thức thực hiện nhiệm vụ
OOP hỗ trợ khái niệm overloading (nạp chồng), nghĩa là sử dụng cùng tên phương thức để thực hiện các chức năng khác nhau. Ngoài ra, OOP có hỗ trợ kế thừa cho phép sử dụng thuộc tính và chức năng của lớp khác nhau bằng kế thừa.
Ngược lại, POP không có khái niệm kế thừa và đa hình.
OOP: Ruby, C++, Java,...
POP: Pascal, C,...
Nguồn: techmaster.vn