반응형
클래스 추출이 필요할 때?
한 클래스가 너무 많은 책임을 지고 있을 때
해법은?
묶을 수 있는 필드와 메서드를 찾아 새로운 클래스로 추출한다.
결과는?
클래스가 작아진다.
클래스의 책임이 명확해진다.
클래스의 개수가 늘어난다.
방법은?
1. 클래스의 책임을 어떻게 추출할 지 결정한다.
2. 추출한 책임을 담당할 새로운 클래스를 작성한다. (기존 클래스의 책임이 이름과 일치하지 않게 되면 기존 클래스의 이름을 바꾼다.)
3. 기존 클래스에서 새로운 클래스로 링크를 작성한다. (반대 방향 링크는 가능한 한 만들지 않는다.)
4. 기존 클래스에서 새로운 클래스로 필요한 필드를 이동한다.
5. 기존 클래스에서 새로운 클래스로 필요한 메소드를 이동한다.
6. 추출한 클래스를 검토한다.
클래스 인터페이스(API)를 줄일 수 있나?
➞ 사용하지 않는 메소드가 있는지, 공개할 필요 없는 메소드가 있는지 확인한다.
새로운 클래스를 외부에 공개해야 하나?
공개한다면 외부에서 수정 가능하게 할 것인가?
반응형
반응형
'리팩토링' 카테고리의 다른 글
[리팩토링] 분류 코드를 하위 클래스로 치환 (0) | 2023.11.06 |
---|---|
[리팩토링] 분류 코드를 클래스로 치환 (0) | 2023.11.06 |
[리팩토링] 자바 코딩 규약 (Java Coding Conventions) 8가지 (0) | 2023.11.06 |
[리팩토링] 메소드 추출 (0) | 2023.11.06 |
[리팩토링] 매직 넘버를 기호 상수로 치환 (0) | 2023.11.04 |