Có ai giúp em với!lập trình hướng cấu trúc và hướng đối tượng khác gì nhau,có quan hệ với nhau như thế nào

star
star
Trả lời 16 năm trước
Lập trinh truyền thống là lập trình cấu trúc hay lập trình hướng thủ tục. Những ngôn ngữ lập trình truyền thống như: Pascal, C, Foxpro.. được gọi chung là ngôn ngữ lập trình hướng thủ tục. Theo cách tiếp cận hướng thủ tục thì hệ thống phần mềm được xem như là dãy các công việc cần thực hiện như đọc dữ liệu, tính toán, xử lý, lập báo cáo và in ấn kết quả...Mỗi công việc đó sẽ dược thực hiện bởi một hàm hay thủ tục nhất định. Như vậy trọng tâm của cách tiếp cận này là các hàm chức năng. Nói rõ hơn theo cách tiếp cận này, chương trình được tổ chức thành các chương trình con. Mỗi chương trình con đảm nhận xử lý một công việc nhỏ trong toàn bộ hệ thống. Mỗi chương trình con này lại có thể chia nhỏ thành các chương trình con nhỏ hơn. Quá trình phân chia như vậy tiếp tục diễn ra cho đến khi các chương trình con nhận được đủ đơn giản. Người ta gọi đó là quá trình làm mịn dần. Khi tập trung vào trọng tâm phát triển các hàm thì chúng ta lại ít chú ý đến dữ liệu ( Nghĩa là lập trình hướng thủ tục thì dữ liệu không được coi trọng) những cái mà các hàm sử dụng để thực hiện công việc của mình. Cái gì sẽ xẩy ra đối với dữ liệu và gắn dữ liệu với các hàm như thế nào? Trong chương trình có nhiều hàm, thường thì có nhiều thành phần dữ liệu quan trọng sẽ được khai báo tổng thể để cho nhiều hàm có thể truy nhập, đọc và làm thay đổi giá trị của biến tổng thể. Ngoài ra mỗi hàm có thể có các vùng dữ liệu riêng. Để liên kết giữa các hàm thành một đơn vị chương trình thông qua biến toàn cục. Điều này có nghĩa là nhiều hàm có thể truy nhập, sử dụng dữ liệu chung , làm thay đổi giá trị của chúng và vì vậy rất khó kiểm soát. Nhất là đối với các chương trình lớn, phức tạp thì vấn đề càng trở nên khó khăn hơn. Điều gì sẽ xẩy ra nếu như chúng ta muốn thay đổi, bổ xung cấu trúc dữ liệu của biến toàn cục. Đó là phải viết lại hầu như toàn bộ các hàm có liên quan... Tóm lại những đặc tính chính của phương pháp lập trình hướng thủ tụ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 Phong cách của phương pháp lập trình hướng đối tượng (OOP - Object Oriented Programming) là tập chung vào dữ liệu. Theo cách tiếp cận này thì một câu hỏi thường được đặt ra là dữ liệu nào thì được các phương thức(hay các hàm) nào xử lý và người ta đem gói tất cả dữ liệu và các phương thức có liên quan với nhau thành một nhóm giống như một lọ thuốc bao giờ cũng có hai thứ: Các viên thuốc(dữ liệu) và tờ giấy trên đó ghi cách dùng các viên thuốc đó(phương thức). Hai thứ đó gộp lại thành một kiểu dữ liệu gọi là dữ liệu đối tượng(Object). Lập trình có sử dụng kiểu dữ liệu loại này gọi là lập trình hướng đối tượng. Lập trình hướng đối tượng đặt trọng tâm vào đối tượng. Yếu tố quan trong quá trình phát triển chương trình và không cho phép dữ liệu biến động tự do trong hệ thống. Trong một đối tương dữ liệu gắn chặt với các hàm thành viên thành các vùng riêng mà chỉ có các hàm đó tác động nên và cấm các hàm bên ngoài truy nhập tới tuỳ tiện. Lập trình hướng đối tượng cho phép phân tích bài toán thành các thực thể được gọi là đối tượng và sau đó xây dựng các dữ liệu cùng các hàm xung quanh các đối tượng đó. Các đối tựng có thể tác động, trao đổi thông tin với nhau thông qua cơ chế thông báo(mesage) thông qua các phương thưc(hàm). Lập trình hướng đối tượng có các đặc tính sau: + Tập chung vào dữ liệu thay cho các hàm + Chương trình được chia thành các đối tượng + Cấu trúc dữ liệu được thiết kế sao cho đặc tả được đối tượng gắn với cấu trúc dữ liệu đó. + Dữ liệu được đóng gói lại, được che giấu và không cho phép các hàm ngoại lai truy nhập tự do. + Các đối tượng tác động và trao đổi thông tin với nhau qua các hàm. + Có thể dẽ dàng bổ sung dữ liệu và các hàm mới vào đối tượng nào đó khi cần thiết. + Chương trình được thiết kế theo cách tiếp cận từ dưới lên(bottom- up).