LISTORY
코드 리팩토링 [ 기능의 산재 ] 본문
기능의 산재
저번 포스팅에 수정의 다발은, 하나의 기능을 고칠 때 고쳐야 할 부분이 많은 코드의 문제점이라 말하였다.
하지만 이번 기능의 산재 부분을 보면서 잘못 설명했다는 것을 알게되어 정정하겠다.
수정의 다발은 클래스를 다양한 원인 때문에 다양한 방식으로 수정해야 하는 것이다.
이럴 때엔 그 클래스를 여러 개의 변형 객체로 분리하는 것이 좋다.
하나의 기능을 고칠 때 고쳐야할 부분이 많은 것은 오늘 설명할 기능의 산재이다.
기능의 산재를 해결하기 위해선 메서드 이동과 필드 이동을 적용해야 한다.
“메서드 이동”
메서드가 자신이 속한 클래스보다 다른 클래스의 기능을 더 많이 이용하면 메서드를 다른 클래스로 옮기거나, 비슷한 메서드를 클래스에 생성한다.
“필드 이동”
어떤 필드가 자신이 속한 클래스보다 다른 클래스에서 더 많이 사용될 때, 다른 클래스 안에 새 필드를 선언하고 필드 참조 부분을 새 필드 참조로 수정한다.
존재하는 클래스 중, 어느 것에 넣기에도 부적절해 보일 때엔 새로운 클래스를 생성하여 적용할 수 있다.
이런 방식으로, 수정이 필요할 경우엔 하나의 클래스만 수정할 수 있도록 해야한다.
'IT > 리팩토링' 카테고리의 다른 글
코드 리팩토링 [ 강박적 기본 타입 사용 / switch 문 ] (0) | 2018.04.01 |
---|---|
코드 리팩토링 [ 잘못된 소속 / 데이터 뭉치 ] (0) | 2018.04.01 |
코드 리팩토링 [과다한 매개변수 / 수정의 산발] (0) | 2018.03.24 |
코드 리팩토링 [중복코드 / 장황한 메서드 / 방대한 클래스] (0) | 2018.03.24 |
리팩토링이란 (0) | 2018.03.14 |
Comments