Android 디자인 모드 의 관찰자 모드 상세 설명
먼저 작은 이 야 기 를 하 다.
어느 학교 어느 반 에 정향 이라는 여학생 이 있 었 는데, 그녀 는 젊 고 아름 답 고 성적 도 좋 았 다.그래서 반 의 남학생 들 은 모두 그 를 좋아 하고 추구 하 는 사람 이 무수 하 다.그 중 열 명의 작은 형 이 바로 그의 충실 한 팬 이다.
몰래 한 마디 하 자 면 이 정향 아가 씨 는 바로 '피 관찰자' 이 고 이 열 명의 작은 형 은 바로 '관찰자' 이다.
어느 날 정향 아가씨 가 그녀의 절친 에 게 사 과 를 좋아한다 고 한 마디 했 는데, 이 말 은 시시각각 그녀의 언행 을 관찰 하 는 꼬마 들 에 게 들 렸 다.
그 러 자 다음날 수업 시간 에 이 정향 아가씨 의 책상 안에 사과 열 개가 숨 어 있 었 다.
어느 날 A. 작은 형 은 정향 에 게 고백 하 는 것 을 참 을 수 없 었 다. 정향 아가 씨 는 그 A 작은 형 이 키 가 작 아서 절벽 과 함께 있 을 수 없다 고 말 했다.이 작은 형 은 매우 슬 프 게 들 어서 더 이상 그녀 에 게 구애 하지 않 는 다.
A 작은 형 과 같은 기숙사 에 있 는 키 큰 B 작은 형 은 A 작은 형의 이 야 기 를 들 었 다. 자신 이 가능 하 다 고 생각 하여 이 고 량 에 게 다가 가 표현 을 보 았 다.
이렇게 B 형 은 매일 정향 아가씨 가 무엇 을 필요 로 하 는 지 지 켜 보 며 요구 하면 반드시 들 어 준다.
이야기 가 끝나 면 결말 이 무엇 인지 정 방 형 은 모른다.
이 야 기 를 잘 하지 못 하 는 것 은 아마도 이런 뜻 일 것 이다.
한 마디 로 하면 많은 '관찰자' 들 이 '피 관찰자' 를 동시에 관찰 하면 피 관찰자 가 모든 '관찰자' 를 증가 / 삭제 할 수 있다. 가장 중요 한 것 은 '피 관찰자' 가 새로운 변화 가 있 을 때 모든 '관찰자' 가 '피 관찰자' 의 변 화 를 업데이트 하 는 방법 을 호출 하 는 것 이다.
다음은 하나의 사례 로 네트워크 자원 을 참고 하여 간단 하고 문 제 를 설명 한다.
</pre><pre name="code" class="java">public interface Watcher{
//
public void updateNotify(Content content);
}
// :
public interface Watched{
//
public void add(Watcher watcher);
//
public void remove(Watcher watcher);
//
public void notifyWatcher(Content content);
}
// :
public class ConcreteWatcher implements Watcher{
//
public void updateNotify(Content content){
int id = content.getId();
String name = content.getName();
String address = content.getAddress();
System.out.println("id:"+id++"/n name:"+name+"/n address:"+address);
}
}
// :
public class ConcreteWatched implements Watched{
// List Watcher
private List<Watcher> list = new ArrayList<Watcher>();
//
public void add(Watcher watcher){
list.add(watcer);
}
public void remove(Watcher watcher){
list.remove(watcher);
}
public void notifyWatcher(Content content){
for(Watcher watcher : list){
watcher.updateWatcher(content);
}
}
}
// ,
public class Content{
private int id;
private String name;
private String address;
public void setId(int id){
this.id = id;
}
public int getId(){
return id;
}
public void setName{String name}{
this.name = name;
}
public String getName(){
return name;
}
public void setAddress(String address){
this.address = address;
}
public String getAddress(){
return address
}
}
//
public classs Test{
public static void main(String args[]){
//
Watched watched = new Watched();
//
Watcher watcher1 = new Watcher();
//
Watcher watcher2 = new Watcher();
//
Watcher watcher3 = new Watcher();
//
watched.add(watcher1);
watched.add(watcher2);
watched.add(watchre3);
// :
Content content = new Content();
content.setId("0001");
content.setName("jiangshide");
content.setAddress("beijing");
watched.notifyWatchers(content);
//
watched.remove(watchr2);
content.setName="litian";
watched.notifyWatchers(content);
}
}
관찰자 와 피 관찰 자 는 일대일 의 관계 이다. 즉, 피 관찰 자 는 여러 관찰자 에 의 해 공동으로 관심 을 가 질 수 있다. 피 관찰자 가 업 데 이 트 될 때 그 관찰자 에 대해 자동 으로 정 보 를 업데이트 한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.