study/etc

높은 응집도와 낮은 결합도

836586697769 2024. 6. 26. 21:41

응집도와 결합도

객체지향 프로그래밍에서는 높은 응집도와 낮은 결합도를 가지는 코드를 지향

  • 응집도: 프로그램의 한 요소가 가진 책임과 수행하는 기능이 얼마나 밀접하게 뭉쳐 있는지를 나타내는 정도
  • 결합도: 코드의 한 요소가 다른 요소와 얼마나 강하게 연결되어 있고, 서로 얼마나 의존적인지를 나타내는 정도

 

응집도가 낮거나 결합도가 높다면?

  • 다른 클래스의 변화에 민감해져 코드를 수정하려면 연관된 다른 클래스를 함께 이해하고 변경해야 함
  • 재사용성과 유지보수성 감소

 

객체가 높은 응집도와 낮은 결합도를 가지려면?

  • 명확한 목적을 위해 밀접하게 연관된 기능들이 모이도록
  • 각각 단일 목적을 가져서 서로 독립성이 높도록
  • 자기의 역할에 대한 책임을 독립적으로 가지나 너무 많은 일을 하지 않도록
  • 다른 객체와 협력하도록

설계하여 코드의 가독성과 유지보수성을 높이며, 오류를 줄이고 재사용성을 증가시킬 수 있도록 함