Programing

Observer Pattern

BUST 2018. 9. 30. 22:17

Observer Pattern

  • https://en.wikipedia.org/wiki/Observer_pattern
  • 여러개의 observer를 가지고 있는 subject가 있고 상태가 변경이 되었을때 (state change) 자동으로 observer에게 notify를 한다.
  • 객체가 1 to N로 의존성을 가지고 있을때
  • 1개의 객체의 상태가 바꿨을때 의존하고 있는(dependent) 객체들이 자동으로 업데이트가 되어야 할때

Structure


Examples

import java.util.Observable;
import java.util.Scanner;

class EventSource extends Observable implements Runnable {
    public void run() {
        while (true) {
            String response = new Scanner(System.in).next();
            setChanged();
            notifyObservers(response);
        }
    }
}


import java.util.Observable;

import java.util.Observer;


public class MyApp {

    public static void main(String[] args) {

        System.out.println("Enter Text: ");

        EventSource eventSource = new EventSource();


        eventSource.addObserver((obj, arg) -> {

            System.out.println("Received response: " + arg) 

        });


        new Thread(eventSource).start();

    }

}


'Programing' 카테고리의 다른 글

Event Sourcing  (0) 2018.10.16
Actor Model  (0) 2018.10.02
MVC Pattern  (0) 2018.09.04
불변객체 (Immutable Object)  (0) 2018.08.28
B tree, B+ tree  (0) 2018.08.25