30/09/2018, 18:10
Tại sao nói lập trình hướng thủ tục là top-down và hướng đối tượng là bottom-up
Trong link kia ghi là: C tiếp cận theo top-down còn C++ tiếp cận theo bottom-up là thế nào nhể
Bài liên quan
Dạ theo em có đọc thì
nguồn: https://beta.wikiversity.org/wiki/Giới_thiệu_về_lập_trình_hướng_đối_tượng
Nghe củ chuối nhể anh nghĩ là với phương pháp lập trình nào thì cũng đều hướng đến việc giải quyết vấn đề, mà muốn giải quyết vấn đề thì phải bắt đầu từ chính vấn đề đó chứ sao lại bắt đầu từ đối tượng được.
Tự nhiên tạo ra đống object xong nghĩ "giờ mình làm gì với chúng nhỉ? " , nếu như vậy thì thủ tục cũng làm được, cũng ngồi tạo ra đống thủ tục rồi tự hỏi “làm gì tiếp bây giờ?”
Theo mình thì hướng thủ tục là top-down, tức mình làm gì đó, từ hành động đó mổ xẻ ra các vấn đề liên quan
Hướng đối tượng là bottom-up, tức là ta quan sát cấu tạo hay đúng hơn là “hành động đó bao gồm những hành động con nào”, rồi xây dựng các mẫu nhỏ, và ghép lại.
Với phương pháp lập trình thủ tục, người lập trình phải có cái nhìn tổng quan về toàn bộ hệ thống mà họ sẽ thiết kế ra. Sau đó dùng phương pháp chia để trị, nhằm đơn giản hóa các module khác nhau để phục vụ cho từng mục đích nhỏ. Nhưng những công việc nhỏ này đã nằm trong sự tính toán ban đầu rồi. Nó đi từ tổng quan đến chi tiết nên gọi là top - down. Lập trình hướng cấu trúc tập trung nhiều hơn vào chức năng. Chức năng (functional) thì nó có đầu vào và đầu ra, việc thay đổi dữ liệu làm ảnh hưởng đến đầu vào và đầu ra của hệ thống, việc chỉnh sửa, bảo trì sẽ tốn nhiều thời gian.
Còn phương pháp hướng đối tượng cho người lập trình xây dựng hệ thống với những thực thể (đối tượng) chưa hoàn thiện. Về sau nếu cần thêm chức năng cho hệ thống, cần thêm phương thức cho đối tượng thì có thể kế thừa hoặc chỉnh sửa bên trong các class đó. Hệ thống xây dựng từ đơn giản đến phức tạp nên gọi là bottom - up. Lập trình hướng đối tượng tập trung nhiều hơn vào dữ liệu.
Mình chỉ hiểu như thế thôi, chẳng biết có đúng không.
A post was split to a new topic: Làm thế nào để xác định lớp(class) từ bài toán đặt ra? Làm thế nào để xác định phương thức của lớp?
A post was merged into an existing topic: Làm thế nào để xác định lớp(class) từ bài toán đặt ra? Làm thế nào để xác định phương thức của lớp?
Search một lúc thì thấy em người ta bảo là dùng cả 2 oop cũng có lúc cần cả top-down