개발새발/Spring

220201_스프링입문_디자인패턴_옵저버 패턴_패스트캠퍼스 챌린지 09일차

막동이아빠 2022. 2. 1. 23:22

<2022년 02월 01일 _ 패스트캠퍼스 챌린지 09일차>

[스프링입문_디자인패턴_옵저버 패턴]

 

1. Observer pattern

 : 관찰자 패턴

 : 변화가 일어났을 때, 미리 등록 된 다른 클래스에 통보해주는 패턴

 : Event Listener에서 해당 패턴이 많이 사용됨

 

2. 실습

 (1) com.company.design 패키지에 observer 패키지 추가 & IButtonListener 인터페이스 추가

 

package com.company.design.observer;

public interface IButtonListener {
    //클릭시 이벤트를 받는 메소드
    void clickEvent(String event);
}

 (2) Button 클래스 생성

package com.company.design.observer;

public class Button {

    private String name; //버튼명
    private IButtonListener buttonListener;

    public Button(String name){
        this.name = name;
    }

    public void click(String message){
        buttonListener.clickEvent(message);
    }

    public void addListener(IButtonListener buttonListener){
        this.buttonListener = buttonListener;
    }
}

(3) Main문 작성

package com.company.design;

import com.company.design.observer.Button;
import com.company.design.observer.IButtonListener;

public class Main {

    public static void main(String[] args) {
        Button button = new Button("버튼");

        button.addListener(new IButtonListener() {
            @Override
            public void clickEvent(String event) {
                System.out.println(event);
            }
        });

        //클릭이 일어나는 경우 예시
        button.click("메시지 전달 : click 1");
        button.click("메시지 전달 : click 2");
        button.click("메시지 전달 : click 3");
        button.click("메시지 전달 : click 4");
    }
}

메시지 전달 : click 1
메시지 전달 : click 2
메시지 전달 : click 3
메시지 전달 : click 4

 

 

결론:

 버튼에 대한 클릭이 발생했을 때 Listener를 이용해서 이벤트를 전달해주는 형태를 Observer pattern 이라고 한다.

 Swing, JWT, Android, 등의 이벤트를 전달해주는 Listener를 사용하는 것. --> Observer pattern

 

9일차 강의 완료~

필기 & 내 화면 스크린샷 저장

 

 

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.