메서드 정리
- Extract Method
- 그룹으로 함께 묶을 수 있는 코드 조각이 있으면, 코드의 목적이 잘 드러나도록 메소드의 이름을 지어 별도의 메소드로 뽑아낸다.
- Inline Method
- 메소드 몸체가 메소드의 이름 만큼이나 명확할때는, 호출하는 곳에 메소드의 몸체를 넣고, 메소드를 삭제하라
- Inline Temp
- 간단한 수식의 결과값을 가지는 임시변수가 있고, 그 임시변수가 다른 리팩토링을 하는데 방해가 된다면, 이 임시변수를 참조하는 부분을 원래의 수식으로 바꾸라
- Replace Temp with Query
- 어떤 수식의 결과값을 저장하기 위해서 임시변수를 사용하고 있다면, 수시을 뽑아내서 메소드로 만들고, 임시변수를 참조하는 곳을 찾아 메소드 호출로 바꾼다. 새로 만든 메소드는 다른 메소드에서도 사용될 수 있다.
- Introduce Explaining Variable
- 복잡한 수식이 있는 경우에는, 수식의 결과나 또는 수식의 일부에 자신의 목적을 잘 설명하는 이름으로 임시변수를 사용하라.
- Split Temporary Variable
- 루프 안에 있는 변수나 collecting temporary variable (수집하는 임시변수) 도 아닌 임수변수에 값을 여러번 대입하는 경우에는, 각각의 대입에 대해서 따로따로 임시변수를 만들어라
- Remove Assignments to Parameters
- 파라미터에 값을 대입하는 코드가 있으면, 대신 임시변수를 사용하도록 하라
- Replace Method with Method Object
- 긴 메소드가 있는데, 지역변수 때문에 Extract Method 를 적용할 수 없는 경우에는, 메소드를 그 자신을 위한 객체로 바꿔서 모든 지역변수가 그 객체의 필드가 되록 한다. 이렇게 하면 메소드를 같은 객체 안의 여러 메소드로 분해할 수 있다.
- Substitue Algorithm
- 알고리즘을 보다 명확한 것으로 바꾸고 싶을 때는, 메소드의 몸체를 새로운 알고리즘으로 바꾼다.
'백엔드 > Java' 카테고리의 다른 글
자바 UTF-8 바이트 (0) | 2024.03.19 |
---|---|
[Spring] Post 요청과 Content-Type 의 관계 (0) | 2022.09.27 |
객체지향 원칙 (0) | 2022.03.27 |
Spring boot 멀티 프로젝트시 클래스 패스 에러 (0) | 2020.11.10 |
자바 멤버변수 (0) | 2020.07.12 |
클래스 다이어그램 (0) | 2020.07.11 |
OAuth2 승인 방식의 종류 (0) | 2020.05.23 |
추상 클래스와 인터페이스의 차이점 (0) | 2020.05.05 |
댓글