OOP và POP
Lập trình hướng đối tượng là gì?
Lập trình hướng đối tượng (Object Oriented Programming -- OOP): là một kỹ thuật lập trình, trong đó chương trình sẽ được chia ra thành các phần nhỏ được gọi là đối tượng (Object).
Đối tượng trong lập trình hướng đối tượng sẽ 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), các hành động (method).
Các đối tượng có thể tương tác với nhau.
Các ngôn ngữ lập trình hướng đối tượ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
(Xem thêm: Các tính chất hướng đối tượng của Java)
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...
So sánh lập trình cấu trúc với hướng đối tượng
Lập trình hướng cấu trúc là gì?
Lập trình hướng cấu trúc hay còn gọi là lập trình hướng thủ tục (Procedure Oriented Programming -- POP): là một kỹ thuật lập trình, trong đó 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ó thể được chia ra nhiều chương trình con khác để đơn giản hóa công việc của chúng. (Quá trình làm mịn)
-- Ví dụ chương trình nhập và hiển thị thông tin người dùng sẽ chia thành hai chương trình con là chương trình nhập và xuất, nếu việc nhập thông tin phức tạp thì chương trình nhập thông tin có thể chia ra nhiều chương trình con khác nhau...
Trong lập trình hướng cấu trúc ta thường quan tâm đến việc phát triển các hàm mà ít quan tâm tới dữ liệu -- thứ mà chúng dùng để xử lý công việc. (Điều này khiến cho dữ liệu khó kiểm soát)
Để liên kết giữa các hàm với nhau ta thường dùng biến toàn cục hoặc con trỏ.
Các tính chất cơ bản của lập trình hướng cấu trúc là:
-- Tập chung vào công việc cần thực hiện (thuật toán)
-- Chương trình lớn được chia thành các hàm nhỏ hơn
-- Phần lớn các hàm sử dụng dữ liệu chung
-- Dữ liêu trong hệ thống được chuyển động từ hàm này sang hàm khác.
-- Hàm biến đổi dữ liệu 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
Các ngôn ngữ lập trình hướng cấu trúc: Pascal, C...
Sự khác nhau giữa lập trình hướng đối tượng với lập trình cấu trúc (OOP vs POP)
Định nghĩa: OOP tập trung vào dữ liệu hơn là thuật toán còn POP tập trung vào việc xây dựng các hàm, thuật toán hơn là dữ liệu.
Chương trình: OOP chia chương trình thành các đối tượng còn POP chia chương trình thành các hàm.
Khả năng truy cập: OOP chia ra các modifier: Private, Public, Protected, Default còn POP thì không.
Thực thi: với OOP các chức năng có thể chạy đồng thời trong khi POP thì các hàm, chức năng chạy lần lượt.
**Điều khiển dữ liệu: **với OOP thì dữ liệu và hàm 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. Với POP, dữ liệu có thể truy cập một cách tự do giữa các hàm.
Bảo mật: OOP bảo mật hơn POP nhờ việc giới hạn truy cập dữ liệu.
Chỉnh sửa: với OOP dữ liệu có thể thêm mới một cách dễ dàng từ các đối tượng trong khi với POP thì rất khó.
So sánh lập trình cấu trúc với hướng đối tượng
References:
http://www.differencebetween.net/technology/difference-between-oop-and-pop