본문 바로가기
Develop/Design

리팩토링으로 클래스 응집도 높이기

by 코딩의성지 2023. 8. 23.

객체지향 코드를 짜기 위해 노력해 본 사람이라면, 좋은 객체지향적 코드를 짜기 위해서는 결합도는 낮추고 응집도를 높이라는 말을 들어보셨을 것이다.

 

혹시 결합도, 응집도가 무엇인지 잘 모르는 사람은 아래의 링크를 통해 공부하고 오자.

https://devkingdom.tistory.com/300

 

결합도와 응집도 이야기

OOP를 다루는 개발자라면 혹은 컴퓨터 공학을 전공하는 사람이라면 누구나 이런 얘기를 들어본 적이 있을 것이다. "결합도는 낮추고, 응집도는 높여야 유지보수하기 쉬운 좋은 프로그램이 된다"

devkingdom.tistory.com


클래스가 아래와 같은 이유로 분리의 필요성을 느낀다면 이는 클래스가 응집도가 낮은 것이니 클래스를 분리해야한다.

1. 변경의 이유를 기준으로 클래스를 분리
클래스가 만약 하나 이상의 이유로 변경되어야 한다면 이는 응집도가 낮은 것이다. 당장 , 변경의 이유를 기준으로 클래스를 분리하자.

 

2. 초기화되는 속성을 기준으로 클래스를 분리

클래스의 인스턴스를 초기화가 경우에 따라 일부 속성들만 초기화하고 일부는 초기화 하지 않는 상태로 남겨둔다면 이는 응집도가 낮은 것이다. 당장, 초기화되는 속성을 그룹화하여 클래스를 분리하자.

 

3.메서드 그룹을 기준으로 클래스를 분리
메서드에서 경우에 따라 일부 인스턴스 변수만 사용하고, 일부는 사용하지 않는다면 이는 응집도가 낮은 것이다. 당장 사용되는 인스턴스 변수를 기준으로 클래스를 분리하자.

 

사실 이렇게 개념적으로만 공부한 것을 통해 응집도를 높이는 것은 쉬운 일은 아니다. 허나 이 3가지 개념을 지켜 리팩토링을 한다면 어느정도 응집도 높은 클래스를 만들수 있을 것이다.

반응형

댓글