2013-09-27 3 views
1

내장 디자인 패턴 :자바 내장 관찰자에 대해서 옵저버 패턴

java.util.Observable; 
java.util.Observer; 

텟 관찰 직렬화해야합니까?

Observer은 관찰 대상에 대한 콜백에 대해 update 메서드를 구현하는 계약을 맺습니다. 콜백은 다음과 같이 보일 것이다 :

다음
@Override 
public void update(Observable observable, final Object observation) { 
    // do some stuff with the notification 
} 

내 질문은 : 관찰라는 마지막 매개 변수는 직렬화 가능해야합니까 아니면 모든 종류의 객체에 통지 할 수 있습니까?

+3

모든 종류의 개체가 될 수 있으며 추가 매개 변수 일뿐입니다. 관심있는 모든 것이 관찰 가능한 객체라면 관찰 객체는 단순히 null 일 수 있습니다. – Jyro117

+1

어디에서 직렬화 할 필요가 있다는 아이디어를 얻었습니까? – Cruncher

+0

메신저로 안드로이드를 연구하여 조각들 사이에서 복잡한 객체를 전송하는 방법, 모두에게 감사드립니다. – j2emanue

답변

4

개체를 직렬화 할 수있는 요구 사항이있는 경우 인터페이스 정의에서 해당 개체가 선언 된 것입니다. 마찬가지로 :

public void update(Observable observable, final Serializable observation) 

그렇지만 그러한 요구 사항은 없습니다.

2

아니요, observation 매개 변수는 직렬화 할 필요가 없습니다. 그렇지 않으면 매개 변수 유형은 Serializable이어야합니다.