티스토리 뷰

[REFACTORING] 6.9 여러 함수 클래스로 묶기

배경

함수 호출 시 인수로 전달되는 공통 데이터를 중심으로 함수들을 묶어 클래스로 만들기

- 함수들이 공유하는 공통환경을 더 명확히 표현

- 함수에 전달되는 인수를 줄여 함수 호출을 간결하게 만들 수 있음

 

장점

- 클라이언트가 객체의 핵심 데이터를 변경할 수 있음

- 파행 객체들을 일관되게 관리할 수 있음

 

최상위 함수로 두면 못 보고 지나칠 수 있음

중첩 함수로 두면 테스트하기 까다로움

 

절차

1. 함수들이 공유하는 공통 데이터 레코드를 캡슐화(7.1)한다.

- 공통 데이터가 레코드 구조로 묶여 있지 않다면 매개변수 객체 만들기(6.8)부터 진행

 

2.  공통 레코드를 사용하는 함수 각각을 새 클래스로 옮긴다(함수 옮기기(8.1)).

- 공통 레코드의 멤버는 함수 호출문의 인수 목록에서 제거

 

3. 데이터를 조작하는 로직들은 함수로 추출(6.1)해서 새 클래스로 옮긴다.

 

프로그램의 다른 부분에서 데이터를 갱신할 가능성이 있을 때는 클래스로 묶는 것이 좋음

- 클래스 내부 함수가 호출되는 시점에 데이터를 가지고 계산하게 만들기

 

 

 

 

2023.05.29

댓글
공지사항