-
행위패턴 : Observer 패턴디자인패턴 2013. 3. 4. 09:00
분류 : 행위패턴(Behavioral Patterns)
정의 :
observer(옵저버, 관찰자)라고하는 종속성 목록을 관리하고, 목록에 속한 객체들에게 상태 변화를 통지하는 객체를 이용하는 패턴.
용도 :
분산 이벤트 핸들링 시스템에서 주로 사용됨.
MVC(Model-View-Controller) 아키텍처 패턴에서 중용한 역할을 함.
소스
import java.util.Observable; //Observable is here import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class EventSource extends Observable implements Runnable { public void run() { try { final InputStreamReader isr = new InputStreamReader(System.in); final BufferedReader br = new BufferedReader(isr); while (true) { String response = br.readLine(); setChanged(); notifyObservers(response); } } catch (IOException e) { e.printStackTrace(); } } } import java.util.Observable; import java.util.Observer; /* this is Event Handler */ public class ResponseHandler implements Observer { private String resp; public void update(Observable obj, Object arg) { if (arg instanceof String) { resp = (String) arg; System.out.println("\nReceived Response: " + resp ); } } } public class MyApp { public static void main(String[] args) { System.out.println("Enter Text >"); // create an event source - reads from stdin final EventSource eventSource = new EventSource(); // create an observer final ResponseHandler responseHandler = new ResponseHandler(); // subscribe the observer to the event source eventSource.addObserver(responseHandler); // starts the event thread Thread thread = new Thread(eventSource); thread.start(); } }
참고자료
'디자인패턴' 카테고리의 다른 글
행위패턴 : Strategy 패턴 (0) 2013.03.18 행위패턴 : State 패턴 (0) 2013.03.11 행위패턴 : Memento 패턴 (0) 2013.02.28 행위패턴 : Mediator 패턴 (0) 2013.02.28 행위패턴 : Iterator 패턴 (0) 2013.02.27 댓글