-
[리팩토링] 메소드 인수를 조절한다.My-Book(History) 2015. 6. 27. 19:34반응형
1. 인수의 삭제
문제 : 메소드의 내부에서 사용하고 있지 않는 인수가 있다.
해법 : 사용하지 않는 인수를 삭제하자!
2. 인수의 추가
문제 : 메소드에 필요한 정보가 부족하다.
해법 : 인수를 증가시켜 필요한 정보를 전달하자
주의 : 단지 인수를 증가시켜서는 안된다. 너무 증가해야 될 듯싶으면 인수 오브젝트의 도입을 검토하자
3. 인수를 명시적 메소드군으로 치환
문제 : 인수의 특정 값에 대해 실행되는 코드가 분리되어 있다.
해법 : 특정 값마다 전용의 메소드를 만들자
주의 : 메소드의 수를 증가시키는 대신에 인수의 수를 줄인다.
ex) 변경전
void setBuffer (char name, char[] buffer) {
if(name== 'R') {
_readBuffer = buffer;
} else if(name== 'W') {
_writeBuffer = buffer;
} else {
....
}
}
변경후
void setReadBuffer (char[] buffer) {
readBuffer = buffer;
}
void setWriteBuffer (char[] buffer) {
_writeBuffer = buffer;
}
반응형'My-Book(History)' 카테고리의 다른 글
[Effective Java 2/E] 규칙42 varargs는 신중히 사용하라 (0) 2016.02.28 [Effective Java 2/E] 규칙2 생성자 인자가 많을 때는 Builder 패턴 적용을 고려하라 (0) 2016.02.20 [리팩토링] 조건문 쪼개기 & 매개변수 (0) 2015.06.13 [리팩토링] 메서드 추출 (0) 2015.06.07 JavaScript Patterns (DOM과 브라우저 패턴) (0) 2015.05.04