티스토리 뷰
[REFACTORING] 6.9 여러 함수 클래스로 묶기
배경
함수 호출 시 인수로 전달되는 공통 데이터를 중심으로 함수들을 묶어 클래스로 만들기
- 함수들이 공유하는 공통환경을 더 명확히 표현
- 함수에 전달되는 인수를 줄여 함수 호출을 간결하게 만들 수 있음
장점
- 클라이언트가 객체의 핵심 데이터를 변경할 수 있음
- 파행 객체들을 일관되게 관리할 수 있음
최상위 함수로 두면 못 보고 지나칠 수 있음
중첩 함수로 두면 테스트하기 까다로움
절차
1. 함수들이 공유하는 공통 데이터 레코드를 캡슐화(7.1)한다.
- 공통 데이터가 레코드 구조로 묶여 있지 않다면 매개변수 객체 만들기(6.8)부터 진행
2. 공통 레코드를 사용하는 함수 각각을 새 클래스로 옮긴다(함수 옮기기(8.1)).
- 공통 레코드의 멤버는 함수 호출문의 인수 목록에서 제거
3. 데이터를 조작하는 로직들은 함수로 추출(6.1)해서 새 클래스로 옮긴다.
프로그램의 다른 부분에서 데이터를 갱신할 가능성이 있을 때는 클래스로 묶는 것이 좋음
- 클래스 내부 함수가 호출되는 시점에 데이터를 가지고 계산하게 만들기
2023.05.29
'책' 카테고리의 다른 글
[REFACTORING] 6.11 단계 쪼개기 (0) | 2023.06.01 |
---|---|
[REFACTORING] 6.10 여러 함수를 변환 함수로 묶기 (0) | 2023.05.30 |
[REFACTORING] 6.8 매개변수 객체 만들기 (0) | 2023.05.27 |
[REFACTORING] 6.7 변수 이름 바꾸기 (0) | 2023.05.26 |
[REFACTORING] 6.6 변수 캡슐화하기 (0) | 2023.05.24 |
댓글
공지사항