객체지향 코드를 짜기 위해 노력해 본 사람이라면, 좋은 객체지향적 코드를 짜기 위해서는 결합도는 낮추고 응집도를 높이라는 말을 들어보셨을 것이다.
혹시 결합도, 응집도가 무엇인지 잘 모르는 사람은 아래의 링크를 통해 공부하고 오자.
https://devkingdom.tistory.com/300
클래스가 아래와 같은 이유로 분리의 필요성을 느낀다면 이는 클래스가 응집도가 낮은 것이니 클래스를 분리해야한다.
1. 변경의 이유를 기준으로 클래스를 분리
클래스가 만약 하나 이상의 이유로 변경되어야 한다면 이는 응집도가 낮은 것이다. 당장 , 변경의 이유를 기준으로 클래스를 분리하자.
2. 초기화되는 속성을 기준으로 클래스를 분리
클래스의 인스턴스를 초기화가 경우에 따라 일부 속성들만 초기화하고 일부는 초기화 하지 않는 상태로 남겨둔다면 이는 응집도가 낮은 것이다. 당장, 초기화되는 속성을 그룹화하여 클래스를 분리하자.
3.메서드 그룹을 기준으로 클래스를 분리
메서드에서 경우에 따라 일부 인스턴스 변수만 사용하고, 일부는 사용하지 않는다면 이는 응집도가 낮은 것이다. 당장 사용되는 인스턴스 변수를 기준으로 클래스를 분리하자.
사실 이렇게 개념적으로만 공부한 것을 통해 응집도를 높이는 것은 쉬운 일은 아니다. 허나 이 3가지 개념을 지켜 리팩토링을 한다면 어느정도 응집도 높은 클래스를 만들수 있을 것이다.
반응형
'Develop > Design' 카테고리의 다른 글
[Design Pattern] Singleton Pattern (0) | 2023.01.28 |
---|---|
추상적인 책임 vs 상세한 책임 (0) | 2022.10.25 |
[Design Pattern] Composite 패턴 정리 (0) | 2022.10.11 |
협력, 역할, 책임의 관점에서 바라본 객체지향 세계 (0) | 2022.10.10 |
[Design Pattern] 빌더 패턴 정리 (0) | 2022.09.27 |
댓글