인프런 커뮤니티 질문&답변

김규태님의 프로필 이미지
김규태

작성한 질문수

객체 지향 프로그래밍 입문

기능과 책임 분리

기능 분리 기준에 대한 질문이 있습니다.

해결된 질문

작성

·

257

1

계산 분리 및 연동 분리에서 보면 분리 단위를 별도 객체를 통해 분리를 예시로 들어주시고 있으십니다.

별도 객체로 분리하는 게 1장에서 배운 측면에서 유리하겠지만 어떠한 특정한 경우에는 별도 객체가 아닌 별도 메서드로 분리하는 게 유리하지 않을까란 생각이 듭니다.

문제는 그게 어떠한 특정한 경우인지 모르겠습니다. 

강사님께서는 무조건적으로 분리 시 객체 단위로 분리하시나요 아니면 특정한 경우에 대해서는 메서드를 통해 분리를 하시는 지 궁금합니다.

감사합니다.
이상입니다.

답변 2

5

최범균님의 프로필 이미지
최범균
지식공유자

별도 객체, private 메서드, 다른 클래스의 static 메서드 등으로 분리할 수 있을 텐데, 저는 독립적으로 테스트하고 싶은 대상인지 따져보는 편입니다. 독립적으로 테스트하고 싶은 경우 별도 객체나 static 메서드로 분리해서 분리한 대상을 테스트합니다.

또 단위 테스트 가능성도 따져 봅니다. 단위 테스트하기 힘든 구조일 때 일부 코드 블록을 별도 객체로 분리해서 대역(mock 등)으로 대체할 수 있는 구조로 만듭니다.

테스트에 큰 이점이 없으면 별도 클래스로 분리하지 않고 private 메서드로 분리하는 정도만 합니다.

 

0

김규태님의 프로필 이미지
김규태
질문자

답변이 이해가 되었습니다. 감사합니다.

김규태님의 프로필 이미지
김규태

작성한 질문수

질문하기