728x90
반응형
SMALL
자바로 배우는 리팩토링 입문
- Java Refactoring For Beginner
- 건강한 코드로 소프트웨어 체질을 개선하자!
- 유키 히로시 지금
- 길벗 출판사
- 2017.10.31
리팩토링을 위한 스터디 내용을 정리하자.
메서드 추출
한 메서드 안에 이런저런 세세한 처리가 많다면 그런 처리를 묶어서 나누고 독립된 메서드로 추출하는 것이 메서드 추출 리팩토링이다.
Before
public void print(int times) {
System.out.println("+");
for (int i = 0; i < content.length(); i++) {
System.out.println("-");
}
System.out.println("+");
for (int i = 0; i < times; i++) {
System.out.println("|" + content + "|");
}
System.out.println("+");
for (int i = 0; i < content.length(); i++) {
System.out.println("-");
}
System.out.println("+");
}
After
하나의 메서드 안에 테두리 ("+-------+")를 출력하는 기능과 내용(content)을 출력하는 기능이 들어 있다.
테두리 출력과 내용 출력을 각 각 메서드로 분류하자.
public void print(int times) {
printBorder();
printContent();
printBorder();
}
private void printBorder() {
System.out.println("+");
for (int i = 0; i < content.length(); i++) {
System.out.println("-");
}
System.out.println("+");
}
private void printContent() {
for (int i = 0; i < times; i++) {
System.out.println("|" + content + "|");
}
}
IntelliJ IDEA에서는 이러한 기능을 제공한다.
메서드로 추출하고 싶은 부분을 드래그 한 뒤, Option + Command + m을 누르면 Extract Method 창이 나타난다.
추출할 메서드 Name을 입력하고, 파라미터를 설정하면 간편하게 메서드를 추출할 수 있다.
클래스 추출
클래스는 각각 정해진 일이 있어서 그 일을 완수할 책임이 있다.
클래스는 하나의 책임을 지는 것이 가장 이상적이다.
SOLID의 'SRP (Single Responsibility Principle) 단일 책임 원칙'과 일맥상통하는 이야기이다.
객체 지향과 SOLID에 대한 자세한 내용은 아래를 참고하자.
hoooon-s.tistory.com/12?category=956412
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.01.17 |
[Java Refactoring] 리팩토링이란 무엇인가? (0) | 2021.01.17 |