-
[Java 언어로 배우는 디자인 패턴 입문]Ch17. ObserverDevelopment/[디자인패턴] 2019. 7. 8. 13:29반응형SMALL
Observer
상태의 변화를 알려주기
android에서는 observer 패턴은 알게 모르게 많이 사용하고 있습니다.
broadcast receiver 나 흔히 말하는 listener 등이 이 observer 패턴을 사용하고 있습니다.
책에도 나오고 있지만, observer (능동적으로 관찰하는 것이)라기 보단 Publish-Subscribe 패턴이 더 적당할 수도 있습니다.
Observer pattern (출처 - http://blog.naver.com/janghun741/10187843030)
interface 인 Observer를 상속받아 구현합니다. 그리고 addObserver를 통해 notification을 받을 클래스들을 등록합니다.
그렇다면 실제 observer들에게는 어떻게 data를 전달해 줄까요?
public abstract class NumberGenerator { private ArrayList observers = new ArrayList(); ... ... public void notifyObserver() { Iterator it = observers.iterator(); while(it.hasNext()) { Observer o = (Observer) it.next(); o.update(this); } } }
반복문을 통해서 등록된 observer 객체의 update()를 모두 호출해서 data를 전달하거나 알려줍니다.
반응형LIST'Development > [디자인패턴]' 카테고리의 다른 글
[Java 언어로 배우는 디자인 패턴 입문]Ch07. Builder (0) 2019.06.26 [Java 언어로 배우는 디자인 패턴 입문]Ch15. Facade (0) 2019.06.21 [Java 언어로 배우는 디자인 패턴 입문]Ch4. Factory Method (0) 2019.06.18