728x90
반응형
SMALL
자바로 배우는 리팩토링 입문
- Java Refactoring For Beginner
- 건강한 코드로 소프트웨어 체질을 개선하자!
- 유키 히로시 지금
- 길벗 출판사
- 2017.10.31
리팩토링을 위한 스터디 내용을 정리하자.
책의 모든 챕터를 정리하려 했는데, 2017년 출판이라 그런 건지.... 내가 못 느끼는 건지.. 뭔가 와 닿지 않아서 간단하게 한 번에 정리했다.
매직 넘버를 기호 상수로 치환
// Before
if (100 < input.length()) {}
// After
public static final String MAX_INPUT_LENGTH = 100;
if (MAX_INPUT_LENGTH < input.length()) {}
메서드명 변경
addActLsnr => addActionListener
rmFcsLsnr => removeFocusListener
임시 변수 제거
// Before
int width = r.getWidth();
if (width > 0) {
...
}
// After
if (r.getWidth() > 0) {
...
}
조건 분기 간결화
조건문을 분해하여 메서드로 추출.
하나의 메서드 안에는 되도록이면 하나의 조건문, 하나의 반복분만 존재하는 것이 좋다.
// Before
if (x < 0) { return false; }
if (y < 0) { return false; }
// After
if (x < 0 || y < 0) { return false; }
// After
if (isOut(x, y)) {
return false;
}
에러 코드를 예외로 치환, 예외를 조건 판정으로 치환
// Before
int getArea(int width, int height) {
if (width < 0 || height < 0) {
return 1; // 에러 코드 반환
} else {
return width * height;
}
}
// After
int getArea(int width, int height) {
if (width < 0 || height < 0) {
throw new IllegalArgumentException();
} else {
return width * height;
}
}
// After
int getArea(int width, int height) {
if (width > 0 && height > 0) {
return width * height;
}
}
생성자 팩토리 메서드로 치환
// Before
public class Shape {
private int typeCode;
public Shape(int typeCode) {
this.typeCode = typeCode
}
}
// After
public class Shape {
private int typeCode;
public static Shape of (int typeCode) {
return new Shape(typeCode);
}
}
이 부분은 이펙티브 자바에서 다시 다루자. 1장인가에 있던 기억이...
728x90
반응형
LIST
'Study > Java Refactoring For Beginner' 카테고리의 다른 글
[Java Refactoring] 에러 코드를 예외로 치환 (0) | 2021.02.08 |
---|---|
[Java Refactoring] 분류 코드를 클래스로 치환 (0) | 2021.02.08 |
[Java Refactoring] 메서드 & 클래스 추출 (0) | 2021.02.08 |
[Java Refactoring] 제어 플래그 삭제 (0) | 2021.02.08 |
[Java Refactoring] 매직 넘버를 기호 상수로 치환 (0) | 2021.01.17 |