디자인 모델 (6. 행위 형 - 관찰자 모델)
 1 /**
 2  *     
 3  *
 4  * @author zhoude
 5  * @date 2020/4/12 14:48
 6  */
 7 public interface Observer {
 8 
 9     /**
10      *           
11      *
12      * @param message     
13      */
14     void notify(String message);
15 }   1 public interface Subject {
 2 
 3     /**
 4      *         
 5      *
 6      * @param observer     
 7      */
 8     void addObserver(Observer observer);
 9 
10     /**
11      *         
12      *
13      * @param observer     
14      */
15     void removeObserver(Observer observer);
16 
17     /**
18      *          
19      *
20      * @param message     
21      */
22     void notifyObservers(String message);
23 }   1 public class SubjectImpl implements Subject {
 2 
 3     private List observers = new ArrayList<>();
 4 
 5     @Override
 6     public void addObserver(Observer observer) {
 7         observers.add(observer);
 8     }
 9 
10     @Override
11     public void removeObserver(Observer observer) {
12         observers.remove(observer);
13     }
14 
15     @Override
16     public void notifyObservers(String message) {
17         for (Observer observer : observers) {
18             observer.notify(message);
19         }
20     }
21 }   1 public class ObserverImpl1 implements Observer {
2 
3     @Override
4     public void notify(String message) {
5         System.err.println("observer1 message:" + message);
6     }
7 }  1 public class ObserverImpl2 implements Observer {
2 
3     @Override
4     public void notify(String message) {
5         System.err.println("observer2 message:" + message);
6     }
7 }  1 public class Test {
2 
3     public static void main(String[] args) {
4         Subject subject = new SubjectImpl();
5         subject.addObserver(new ObserverImpl1());
6         subject.addObserver(new ObserverImpl2());
7         subject.notifyObservers("msg");
8     }
9 }  이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.