Lập trình hướng đối tượng là gì? Ưu, nhược điểm
Lập trình cấu trúc là gì? Ưu nhược điểm.
Lập trình tuyến tính là gì? Ưu nhược điểm.
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)
Thế nào là ngôn ngữ lập trình?
Một ngôn ngữ được coi là ngôn ngữ lập trình hướng đối tượng nếu đáp ứng đủ 4 tính chất sau:
- Tính đóng gói (Encapsulation)
- Tính trừu tượng (Abstraction)
- Tính kế thừa (Inheritance)
- Tính đa hình (Polymorphism)
Ưu điểm lập trình hướng đối tượng
- Dữ liệu không bị thay đổi tự do trong chương trình như lập trình cấu trúc.
- Khi thay đổi cấu trúc dữ liệu của một đối tượng, không cần thay đổi các mã nguồn của các đối tượng khác mà chỉ cần thanh đổi một một số hàm thành phần
- Có thể sử dụng lại mã nguồn qua kế thừa
- Phù hợp các phần mềm phức tạp, lớn.
- Được đánh giá là dễ học, năng suất, đơn giản, dễ bảo trì, dễ mở rộng…
Phương pháp phân tích/thiết kế hướng đối tượng:
Giai đoạn phân tích: chuyển đổi bài toán từ ngôn ngữ tự nhiên sang ngôn ngữ mô hình.
Giai đoạn thiết kế: chuyển từ ngôn ngữ mô hình sang dạng cụ thể có thể cài đặt được
- Mô tả bài toán
- Đặc tả yêu cầu
- Trích chọn đối tượng
- Mô hình hóa đối tượng
- Thiết kế tổng quan
- Thiết kế chi tiết.
Sau giai đoạn phân thích và thiết kế, lập trình viên có thể nhìn vào các tài liệu đã lập và có thể viết code được luôn. Nếu vẫn có những trường hợp chưa biết code như nào thì tức là pha thiết kế đã bị bỏ sót hoặc chưa chi tiết.
(Ngày trước thầy giáo vẫn kêu là thằng viết code chỉ là thằng công nhân lao động theo bản thiết kế, muốn lương cao thì phải làm phân tích thiết kế 😐 nhưng ngành phần mềm ở Việt Nam thì ít có công ty nào mà các giai đoạn được làm chi tiết như thế, lập trình viên mới đi làm sẽ làm tất các bước hoặc một số bước, mỗi cái một ít
Lập trình hướng đối tượng là gì? Ưu, nhược điểm
References: