-- 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... -- 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 References: //www.differencebetween.net/technology/difference-between-oop-and-pop/ //en.wikipedia.org/wiki/Top-down_and_bottom-up_design
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]¶
So sánh lập trình cấu trúc với hướng đối tượng¶
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 là gì?
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 là gì?
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
Để 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.
Về hướng tiếp cận
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].
Về phương pháp thực hiện
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.
Về khả năng truy cập, bảo mậ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.
Về trọng tâ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ụ
Tính kế thừa và đa hình
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.
Các ngôn ngữ sử dụng
OOP: Ruby, C++, Java,...
POP: Pascal, C,...
Nguồn: techmaster.vn
Nếu bạn đang thắc mắc giữa lập trình hướng cấu trúc và hướng đối tượng, thì bài viết này sẽ mang đến nhiều thông tin bổ ích dành cho bạn.
Lập trình hướng thủ tục [POP] và lập trình hướng đối tượng [OOP] đều là những ngôn ngữ bậc cao trong lĩnh vực công nghệ. Chúng được mọi lập trình viên sử dụng để phát triển Web App.
Sau đây, Tự Học Lập Trình sẽ tiến hành so sánh lập trình hướng cấu trúc và hướng đối tượng, để bạn biết được cả hai ngôn ngữ này sở hữu cách tiếp cận phân biệt dựa trên cơ sở bản chất của công việc phát triển mã.
Định nghĩa
Lập trình hướng đối tượng dùng để duy trì, sửa đổi mã có sẵn, nhờ sự kế thừa của những đối tượng mới được tạo ra. Sở dĩ nó làm được điều này là vì, OOP sử dụng các class, hàm để xây dựng chương trình dựa trên môi trường thực tế.
Mặt khác, thông qua chuỗi lệnh, lập trình hướng cấu trúc thực hiện chia nhỏ nhiệm vụ thành biến, quy trình hoặc chương trình. Mỗi bước được thao tác theo trình tự của hệ thống, giúp máy tính hiểu được công việc mình cần thực hiện.
Đối tượng hướng tới
Sự khác nhau dễ nhận biết nhất là trong POP sử dụng thủ tục để hướng tới đối tượng.
Còn OOP sẽ nhằm vào những đối tượng thực tế, cụ thể như người lớn, phụ nữ, hoa, lá... Đa phần những thứ này được viết trong chương trình, thể hiện giống như một đối tượng.
Cách tiếp cận
Trong lập trình hướng cấu trúc, dựa trên chức năng, chương trình sẽ được chia thành nhiều phần riêng cho mỗi chương trình nhỏ. Hiểu đơn giản, POP sử dụng nhiều hàm để giải quyết một bài toán cụ thể. Chính vì thế, nó tích hợp cùng các bài toán đơn giản, cần tư duy giải thuật rõ ràng, nguồn dữ liệu rành mạch, nhất là người lập trình có thể kiểm soát chặt chẽ được mọi việc, từ truy cập đến mã hóa dữ liệu.
Còn lập trình hướng đối tượng, do chương trình được chia thành nhiều đối tượng, thể hiện dạng lớp. Nên chúng chứa thuộc tính hay phương thức, đồng thời tương tác qua lại với các đối tượng. Ví dụ như các thuộc tính, phương thức định nghĩa trong lớp, cũng như trực tiếp quản lý nó. Do vậy, OOP được ứng dụng phần lớn trong những bài toán khó và phức tạp.
Bảo mật
Lập trình hướng đối tượng mang tính trừu tượng cao trong việc ẩn dữ liệu. Nó chia các modifier thành Private, Protected, Public, Default. Điều này cho thấy giới hạn truy cập và bảo mật trong OOP khá cao, không thể tùy tiện truy cập vào hàm.
Còn lập trình hướng cấu trúc thì ngược lại.
Quản lý dữ liệu
Giống như việc chúng ta đang tương tác trực tiếp với thế giới bên ngoài, chương trình sử dụng lập trình hướng đối tượng mang tính trực quan, cụ thể hơn. Chính vì thế, công việc thực hiện sẽ được tối giản về cả công sức lẫn thời gian.
Nếu việc quản lý dữ liệu của OOP đơn giản bao nhiêu thì POP lại khó bấy nhiêu, nhất là thao tác thêm bớt đối tượng.
Công việc chính
Do chỉ có đối tượng của lớp mới được thực hiện hành vi trong đó, nên trọng tâm của lập trình hướng đối tượng là bảo mật dữ liệu.
Còn lập trình hướng cấu trúc sẽ thể hiện cách thức hoàn thành hiện nhiệm vụ của hệ thống dựa trên biểu đồ dòng chảy.
Tính kế thừa, đa hình
POP được cho là dễ học hơn so với OOP, vì nó sử dụng cùng tên hàm để thực hiện nhiều chức năng khác nhau. Bên cạnh đó, OOP còn cho phép kế thừa thuộc tính và chức này sẵn có trên đối tượng. Điều này không tồn tại trong lập trình hướng cấu trúc.
Kết luận
Điểm mấu chốt của sự khác nhau giữa lập trình hướng cấu trúc và hướng đối tượng là, OOP được thiết kế nhằm khắc phục khuyết điểm của POP bằng cách đưa ra khái niệm về đối tượng và các lớp.
Hy vọng với những thông tin Tự Học Lập Trình vừa chia sẻ sẽ giúp bạn hiểu rõ hơn về hai ngôn ngữ bậc cao này!