Câu hỏi phỏng vấn OOP
Câu hỏi

Sự khác biệt giữa Cohesion và Coupling là gì?

Câu trả lời

Cohesion và Coupling là hai khái niệm quan trọng trong lập trình và thiết kế phần mềm, đặc biệt là trong lập trình hướng đối tượng (OOP). Mặc dù cả hai đều liên quan đến mối quan hệ giữa các module hoặc các thành phần trong một hệ thống phần mềm, nhưng chúng đề cập đến hai khía cạnh khác nhau của thiết kế.

Cohesion đề cập đến mức độ mà các thành phần bên trong một module hoặc một lớp (class) thuộc về nhau. Nói cách khác, nó là chỉ số cho thấy một module hoặc lớp tập trung vào bao nhiêu nhiệm vụ hoặc chức năng. Cohesion cao (High Cohesion) là mục tiêu trong thiết kế phần mềm vì nó giúp làm cho các module hoặc lớp trở nên tự đủ và dễ dàng quản lý, bảo trì cũng như tái sử dụng. Các loại Cohesion bao gồm Functional Cohesion, Procedural Cohesion, Temporal Cohesion, Sequential Cohesion, Layer Cohesion, và Communication Cohesion[5].

Coupling, ngược lại, đề cập đến mức độ phụ thuộc lẫn nhau giữa các module hoặc lớp. Coupling thấp (Low Coupling) là mục tiêu trong thiết kế phần mềm vì nó giúp giảm sự phụ thuộc giữa các module hoặc lớp, làm cho hệ thống dễ dàng thay đổi, mở rộng và bảo trì. Coupling thấp cũng giúp giảm rủi ro khi thay đổi một phần của hệ thống ảnh hưởng đến các phần khác. Các loại Coupling bao gồm Common Coupling, External Coupling, Control Coupling...

senior

senior

Gợi ý câu hỏi phỏng vấn

junior

Câu hỏi được dịch là: "Sự khác biệt giữa class và structure là gì?"

expert

Nguyên tắc thay thế Liskov (LSP) là gì và một số ví dụ về việc sử dụng nó (tốt và xấu)?

junior

Trong lập trình OOP, lớp cha là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào