응집도 vs 결합도
일반적으로 좋은 설계란 높은 응집도와 낮은 결합도를 갖는 모듈로 구성된 설계를 의미합니다.
- OPP에서는 응집도는 높히고 결합도는 낮춰야 한다는 말을 많이 하게 됩니다.
- 그렇다면 응집도는 무엇이고 결합도는 무엇일까요?
응집도(Cohesion)란?
- 하나의 모듈이 하나의 기능을 수행하는 요소들간의 연관성 척도
- 독립적인 모듈이 되기 위해서는 응집도가 강해야 한다.
응집도가 낮은 클래스의 문제점
- 이해하기 힘들고
- 따로 재사용하기 힘들며
- 유지보수하기 힘들고
- 다른 클래스의 변화에 민감하게 된다.
결합도(Coupling) 란?
- 어떤 모듈이 다른 모듈에 의존하는 정보를 측정하는 것이다
- 즉, 두 모듈간의 상호 의존하는 정도 또는 두 모듈 사이의 연관관계를 이야기 한다.
- 독립적인 모듈이 되기 위해서는 결합도가 낮아야 한다.
결합도가 높은 클래스의 문제점
- 연관된 다른 클래스가 변경되면 더불어 변경해야 하고
- 수정하려는 클래스를 이해하기 위해 연관된 다른 클래스를 함께 이해해야 하고
- 재사용하기 힘들다
참조
'Study > 웹기초' 카테고리의 다른 글
overflow/underflow (0) | 2023.01.31 |
---|---|
macOS 터미널에서 내 IP 주소 확인하기 (0) | 2022.11.11 |
객체 지향의 3가지 특징 - 캡슐화, 상속, 다형성 (1) | 2022.10.05 |
SOLID (0) | 2022.10.05 |
캡슐화(encapsulation) (0) | 2022.09.22 |