디자인 모델 --- 관찰자 모델
2581 단어 관찰자 모드
관찰자 모드: 대상 간 의 다 중 의존 관 계 를 정의 합 니 다. 대상 (테마 대상) 의 상태 가 바 뀌 면 모든 의존 자 (관찰자 대상) 가 알림 을 받 고 자동 으로 업 데 이 트 됩 니 다.
관찰자 모드 는 주제 대상 과 관찰자 대상 간 의 느슨 한 결합 을 실현 하고 새로운 관찰자 가 있 을 때 주제 대상 의 코드 를 수정 하지 않 고 새로운 관찰자 대상 이 인 터 페 이 스 를 실현 해 야 한다.프로그램 이 실행 되 는 과정 에서 주체 대상 에 영향 을 주지 않 고 관찰 자 를 수시로 등록 하고 삭제 할 수 있다.
소프트웨어 디자인 원칙 1: 상호작용 대상 간 에 느슨 한 결합 을 실현 하고 그들 간 의 상호 의존 을 최소 화하 여 재 활용 성 을 향상 시킨다.
자바 에는 관찰자 모드 에 대한 지원 이 내장 되 어 있 습 니 다: 자바 util. Observable 류 와 자바 util. Observer 인터페이스.하지만 한계 가 있다.
관찰자 모드 에서 데 이 터 를 전달 하 는 방식 은 '푸 시' 와 '당 김' 두 가지 가 있 는데 자바 내 장 된 실현 지원 두 가지 방식 이지 만 '푸 시' 데이터 로 자주 사용 된다.
관찰자 모드 는 느슨 한 결합 방식 으로 대상 간 에 상 태 를 전달 하 는데 MVC 가 대표 적 이다.
나의 이해
1. 두 개의 주요 인터페이스 가 있다. 주제 인터페이스, 관찰자 인터페이스
2. 테마 인 터 페 이 스 는 추가, 삭제, 그리고 관찰자 에 게 알 리 는 행위 가 있 습 니 다.관찰자 인터페이스 에 업데이트 행위 가 있다.
3. 소나무 결합 도 결합 이 있 음 을 의미 합 니 다. 주제 자 는 누가 그것 을 구독 하 는 지 알 고 있 습 니 다.구독 자 는 그것 이 누 구 를 구독 하 는 지 안다.
4. 구독 자의 구조 방법 에서 인터페이스 형식의 주제 대상 을 전달 하고 주제 대상 을 호출 하여 사용 자 를 추가 하 는 방법 을 전달 할 수 있다.
5. 테마 측은 개인 적 인 List 를 통 해 구독 자 정 보 를 저장 하고 업데이트 가 있 으 면 List 를 옮 겨 다 니 며 구독 자의 업데이트 방법 을 하나씩 호출 합 니 다.
6 구독, 취소 행 위 는 코드 에서 List 가 요소 에 대한 추가 또는 삭제 로 표 시 됩 니 다.
코드 인 스 턴 스
public interface Subject {
public void addObserver(Observer observer);
public void removeObserver(Observer observer);
public void notifyObservers();
}
public interface Observer {
public void update(String blog);
}
//
public class Blogger implements Subject {
private List<Observer> observers;
private String blog;
public Blogger() {
observers = new ArrayList<Observer>();
}
public void addObserver(Observer observer) {
observers.add(observer);
}
public void removeObserver(Observer observer) {
observers.remove(observer);
}
public void notifyObservers() {
for (Observer o : observers) {
o.update(blog);
}
}
//
public void writeNewBlog(String blog) {
this.blog = blog;
notifyObservers();
}
}
//
public class EmailSubscriber implements Observer {
public void update(String blog) {
//
}
}
//RSS
public class RssSubscriber implements Observer {
public void update(String email) {
// RSS
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 관찰자 모드 쉽게 파악정의: 객체 간에 일대다 관계가 있을 때 관찰자 모드(Observer Pattern)를 사용합니다.예를 들어 대상이 수정되면 의존 대상을 자동으로 알려준다. 특징: 1. 관찰자와 피관찰자는 추상적인 결합이다. 2. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.