감청기 모드

2291 단어
javaweb의 Listener에서 감청기 모드가 언급되었기 때문에 다시 보충해 드리겠습니다

1. 모니터 모드(Listener Pattern)


감청기 모드는 특정한 대상이 발생하는 사건을 감청하는 데 사용된다. 이 대상이 감청된 사건이 발생하면 감청기의 어떤 방법이 집행될 것이다. 주로 사건원, 사건감청기, 사건 대상으로 구성된다.

2. 프로세스


감청기 모드는 매우 간단해서 코드를 직접 보면 이해할 수 있다. 여기에 예를 들어 강아지의 놀음과 학습 사건을 감청한다.

2.1 이벤트 객체

public class Event {

    //  
    Object object;

    public Event(Object object) {
        super();
        this.object = object;
    }

    public Object getObject() {
        return object;
    }
    
}

2.2 이벤트 모니터


개의 감청기 인터페이스
public interface DogListener {
    
    public void playListener(Event event);
    
    public void studyListener(Event event);

}

개 감청기의 실현류
package listenerpatten;

public class MyDogListener implements DogListener {

    @Override
    public void playListener(Event event) {
        System.out.println(" : " +  event.getObject().getClass().getName() + " ");
    }

    @Override
    public void studyListener(Event event) {
        System.out.println(" : " +  event.getObject().getClass().getName() + " ");
    }

}

2.3 이벤트 소스

public class Dog {
    
    private MyDogListener myDogListener;
    public void setDogListener(MyDogListener myDogListener) {
        this.myDogListener = myDogListener;
    }

    public void play(){
        System.out.println("Dog: i am playing");
        Event event = new Event(this);
        myDogListener.playListener(event);
    }

    public void study(){
        System.out.println("Dog: i am studying");
        Event event = new Event(this);
        myDogListener.studyListener(event);
    }
}

2.4 테스트 클래스

public class test {
    
    public static void main(String[] args) {
        
        Dog dog = new Dog();
        MyDogListener myDogListener = new MyDogListener();
        dog.setDogListener(myDogListener);
        
        dog.play();
        dog.study();
        
    }
}
Dog: i am playing
 : listenerpatten.Dog 
Dog: i am studying
 : listenerpatten.Dog 

좋은 웹페이지 즐겨찾기