thắc mắc Đã tưởng OOP là đỉnh cao của ngôn ngữ lập trình cho đến khi xem video này

phút thứ 6:00

Inheritance là linh hồn của OOP, nhưng các kỹ sư FB, GG lại dùng Composition, Composition là cái gì vậy???? :too_sad:


Bạn có nhầm ko đấy
Các kĩ sư có kinh nhiệm sẽ hạn chế sử dụng Ingeritance bởi nó làm các class kết dính với nhau.
Kém linh hoạt, khó sửa đổi.
Muốn abstraction sâu thì toàn dùng Composition thôi.
 
Bạn có nhầm ko đấy
Các kĩ sư có kinh nhiệm sẽ hạn chế sử dụng Ingeritance bởi nó làm các class kết dính với nhau.
Kém linh hoạt, khó sửa đổi.
Muốn abstraction sâu thì toàn dùng Composition thôi.
Còn tùy use case nữa fence ơi, Java collection framework hay Java IO nó dùng nát bét cái inheritence đấy thôi. Cái hay của inheritence là nó kết hợp ngon với interface, class hierachy cũng rõ ràng hơn. Đâu cứ phải composition is good, inheritance is bad
 
Còn tùy use case nữa fence ơi, Java collection framework nó dùng nát bét cái inheritence đấy thôi. Cái hay của inheritence là nó kết hợp ngon với interface, class hierachy cũng rõ ràng hơn. Đâu cứ phải composition is good, inheritance is bad

Thì rõ ràng.
Collection fw nó sử dụng nát bởi các class liên quan có quan hệ cha con.
Bạn nên hiểu composition nó là cho phép một class nào đó có thêm khả năng gì.
Về bản chất composition và inheritance khác nhau hoàn toàn.
Người ta tránh sử dụng kế thừa bởi không phải lúc nào một Child Class cũng cần khả năng nào đó.
 
Back
Top