16. 관찰자 모드(ObserverPattern)
4263 단어 관찰자 모드
대상 간의 일대다 의존 관계를 정의하여 한 대상이 상태를 바꿀 때마다 모든 의존 대상이 알림을 받고 관찰자 모드를 자동으로 업데이트하는 것을 게시 구독 모드라고 한다
2. 관찰자 모드의 사용 장면
모두가 무간도를 보았다고 믿는다면 내 아래의 추상적인 토비들이 경찰서 안에 비밀을 삽입한 코드가 낯설지 않을 것이다. 이것은 관찰자 모델을 매우 형상적으로 묘사한 것이다.
package _16ObserverPattern;
import java.util.ArrayList;
import java.util.List;
/**
*
*/
public abstract class Observable {
//
private List<Observer> observers = new ArrayList<Observer>();
//
public void addObserver(Observer observer) {
this.observers.add(observer);
}
//
public void deleteObserver(Observer observer)
{
this.observers.remove(observer);
}
//
public void notifyObserver(String context) {
for(Observer observer : observers)
{
observer.update(context);
}
}
}
package _16ObserverPattern;
/**
*
*/
public abstract class Observer {
public abstract void update(String context);
}
package _16ObserverPattern;
/**
*
*/
public class Police extends Observable {
public void action()
{
System.out.println(" ");
// ,
notifyObserver(" , ");
}
}
package _16ObserverPattern;
/**
*
*/
public class Bandit extends Observer {
@Override
public void update(String context) {
System.out.println(" :"+context+"。 ");
}
}
package _16ObserverPattern;
/**
*
*/
public class Test {
public static void main(String[] args)
{
//
Police police = new Police();
//
Bandit bandit = new Bandit();
police.addObserver(bandit);
//
police.action();
// , ,
}
}
네가 아래를 집행하면 경찰이 출동하자마자 토비들이 모두 도망갔다는 것을 발견할 수 있을 것이다.이게 관찰자 모드야, 간단하지.
사실 자바에는 이미 관찰자와 피관찰자의 추상적인 실현이 있는데 각각 자바이다.util.Observer 인터페이스와java.util.Observable 추상 클래스는 위의 실현을 대체할 수 있습니다.
3. 관찰자 모드의 네 가지 역할
4. 관찰자 모델의 장점
5. 관찰자 모드의 단점
관찰자 모델은 개발 효율과 운영 효율에 대한 문제를 고려해야 한다. 피관찰자, 여러 관찰자는 개발과 디버깅이 비교적 복잡하고 자바에서 메시지 알림은 기본적으로 순서대로 실행되며 한 관찰자가 케이스를 닫으면 전체적인 실행 효율에 영향을 줄 수 있다.이런 상황에서 일반적으로 비동기(다선정)로 실현하는 것을 고려한다.다단계 촉발의 효율도 비교적 낮기 때문에 설계할 때 주의해야 한다.
6. 관찰자 모드의 주의사항
그것과 책임 체인 모델의 가장 큰 차이점은 관찰자 방송 체인이 전파 과정에서 소식은 수시로 바뀌고 서로 인접한 두 노드가 협상하는 소식 구조이다.한편, 책임 체인 모델은 소식의 전달 과정에서 기본적으로 소식이 변할 수 없는 것을 유지하고 바꾸려면 기존의 소식만 수정할 뿐이다.
7. 현실 세계의 관찰자 모델
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 관찰자 모드 쉽게 파악정의: 객체 간에 일대다 관계가 있을 때 관찰자 모드(Observer Pattern)를 사용합니다.예를 들어 대상이 수정되면 의존 대상을 자동으로 알려준다. 특징: 1. 관찰자와 피관찰자는 추상적인 결합이다. 2. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.