자바 디자인 패턴 (15) - Observer pattern
업데이트:
인프런 강의(자바 디자인 패턴의 이해 - Gof Design Pattern)를 듣고 작성하는 수업정리 노트
1. 강의링크:자바 디자인 패턴의 이해 - Gof Design Pattern
2. github repository(Design Pattern)
Sec.15 : 옵저버 패턴(Observer Pattern)
옵서버 패턴(observer pattern)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴.
주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다. 발행/구독 모델로 알려져 있기도 하다.
객체 외부에서 이벤트를 처리함
기초 개념
사전적 의미의 Observer?
감시자, 관찰자라는 뜻
Class Observable
model-view 패러다임에서 관측가능한 객체나 데이터를 표현하는 클래스
관찰 가능한 객체는 1개 혹은 그이상의 관찰자를 가질 수 있음
Interface Observer
observable 객체에게 변경을 알리고 싶을 때 implements해서 사용
클래스 다이어그램
subject객체가 observer인터페이스를 가지고 있고, observer에서 target을 업데이트함
실습
요구사항
- Button Click event를 생성하기
- Button class
멤버변수로 OnClickListener를 private으로 가짐
내부에 OnClickListener인터페이스 선언 -> onClick(Button btn) 메소드 정의 - main
버튼 객체 생성
버튼 객체의 onClickListener를 지정 후 onclick 오버라이드
생성한 버튼의 onClick 호출
- Button class
실습2
요구사항
- java의 Observer, Observable 이용하기
- Button 클래스를 생성하고 Observable을 상속하기
- onclick메소드 내의 Observable의 메소드를 이용하여 onClick호출 시 알려주기
상속없이 observer를 가지는 형태
commit
제네릭, 델리게이트, 내부 observer를 가지는 형태
(너무 어려움.. 이해 엑스..)
참고
위키 백과 - 옵서버 패턴
Class Observable - javadoc8
Interface Observer - javadoc8
댓글남기기