본문 바로가기

Development/Programming

[Refactoring] 상태 변경 메서드와 값 반환 메서드를 분리

부작용이 있는 메서드와 부작용이 없는 메서드의 차이를 명확히 분간하는 것이 좋다. 값을 반환하는 모든 메서드는 눈에 띄는 부작용이 없어야 한다라는 규칙을 따르는 것이 좋다.


getTotalOutstandingAndSetReadyForSummaries -> getTotalOutstanding

setReadyForSummaries


병행 처리 문제

멀티스레딩 시스템에서 작업하는 살마은 테스트와 설정 연산 수행을 한번에 실시하는 것이 중요함을 알고 있다. 이런 경우에는 두 기능을 모두 수행하는 제 3의 메소드를 두어야한다. 질의 겸 상태 변경 메서드는 질의 메서드와 성태변경 메서드를 호출하고 동기화를 한다. 만약 동기화 하지 않는 다면 privatet 수준으로 제한해야 한다. 그렇게 하면 두 개의 이해하기 위운 메서드로 분리된 기능이 안전하면서도 동기화 상태가 된다.