반응형
Balking 패턴
객체가 특정한 상태에 놓여 실행을 할 수 없는 상태이거나 지금 처리하면 안되는 상태일 때 객체가 'balk'(멈춤 상태)를 리턴하는 패턴이다.
예를 들어, 자바에서 ZIP파일이 열려있지 않은 상태에서 내용을 가져오려고 get()을 호출하면 객체는 'balk'를 요청한다.
public class Example { private boolean jobInProgress = false; public void job() { synchronized(this) { if (jobInProgress) { return; } jobInProgress = true; } // Code to execute job goes here // ... } void jobCompleted() { synchronized(this) { jobInProgress = false; } } }
여기서 핵심은 job메소드에 있는 if문과 현재 상태를 알아보는 jobInProgress 이다.
만약 현재 진행 상태라면 job 메소드는 코드를 실행 시키지 않고 바로 리턴하게 된다.
이렇게 리턴하는 것을 'balk'라고 한다.
반응형
'IT > JAVA & Eclipse' 카테고리의 다른 글
JAVA 22 업데이트 (0) | 2024.03.26 |
---|---|
[Design Pattern] 콜백(Callback) 패턴 (0) | 2017.09.27 |
Eclipse 아이콘들 쉽게 재활용하기 (0) | 2017.09.08 |
윈도우에서 경로를 toURI()로 호출할 경우 exception 발생 (0) | 2015.10.07 |
Eclipse Preference에 값 저장하기 (0) | 2015.09.17 |