부작용이 있는 메서드와 부작용이 없는 메서드의 차이를 명확히 분간하는 것이 좋다. 값을 반환하는 모든 메서드는 눈에 띄는 부작용이 없어야 한다라는 규칙을 따르는 것이 좋다.
getTotalOutstandingAndSetReadyForSummaries -> getTotalOutstanding
setReadyForSummaries
병행 처리 문제
멀티스레딩 시스템에서 작업하는 살마은 테스트와 설정 연산 수행을 한번에 실시하는 것이 중요함을 알고 있다. 이런 경우에는 두 기능을 모두 수행하는 제 3의 메소드를 두어야한다. 질의 겸 상태 변경 메서드는 질의 메서드와 성태변경 메서드를 호출하고 동기화를 한다. 만약 동기화 하지 않는 다면 privatet 수준으로 제한해야 한다. 그렇게 하면 두 개의 이해하기 위운 메서드로 분리된 기능이 안전하면서도 동기화 상태가 된다.
'Development > Programming' 카테고리의 다른 글
[Refactoring] 매개변수를 메서드로 전환 (0) | 2013.09.11 |
---|---|
[Refactoring] 메서드를 매개변수로 전환 (0) | 2013.09.10 |
[Refactoring] 메소드명 변경 (0) | 2013.09.09 |
[Refactoring] Null 검사를 Null 객체에 위임 하자 (0) | 2013.09.04 |
[Refactoring] 조건문을 재정의로 전환 (0) | 2013.09.04 |