"Điểm yếu của lập trình hướng đối tượng ???" Một câu hỏi hay
Theo quan điểm của tui thì lập trình hướng đối tượng là cái đi sau và thừa kế được những cái hay của lập trình cấu trúc và nó bổ sung thêm nhiều cái hay nữa của nó vào.
Cái khuyết điểm lớn nhất của OOP mà tui thấy đó là điểm mạnh lớn nhất của OOP. (sự kế thừa).
Sự kế thừa nó sẽ làm khó khăn thêm cho các lập trình viên trong khi học hướng đối tượng (nếu bạn đi lên từ lập trình cấu trúc)
Bạn phải code nhiều hơn để xử lý một hành động nào đó:
thay vì bên cấu trúc bạn chỉ cần code 2 hàm A,B để làm 2 việc A và B thì bên OOP có thể bạn sẽ phải code nhiều hơn 2 hàm A,B để làm việc này.
Ví dụ:
Bạn cần viết hàm nhập thông tin cho một học sinh và 1 sinh viên thì bạn có thể phải viết 3 hàm:
1 - Hàm nhập thông tin chung của class người
2 - Hàm nhập thông tin của 1 Học Sinh (override của 1)
3 - Hàm nhập thông tin của 1 Sinh Viên (override của 1)
ở đây bạn phải code 3 hàm --- Mệt hơn nhưng đổi lại khi có một thay đổi nhỏ thì sẽ khỏe re hơn.
Cái thứ 2: Bên oop các hàm phân biệt nhau không bằng tên hàm hay kiểu trả về mà phân biệt nhau bằng tham số đầu vào. cái này sẽ làm bạn mất thới gian hơn để học chức năng của hàm đó. (nếu ghi chú không cẩn thận có thể sáng mai ngủ dậy gặp phải trường hợp là ko biết hàm này làm cái gì ??? )
Cái thứ 3: Đây có lẽ là tội lớn thứ nhì của OOP đó là tội bất hiếu (dám đè bẹp cha ông của nó là Lập trình cấu trúc --- Dỡn thui )
vài ý kiến nhỏ có gì sai sót xin chỉ bảo
Trích Congdongcviet.com