delegate와 event

ggm-_-·2024년 10월 17일
0

TIL (Tody I Learn)

목록 보기
19/27

2024.10.17(목)

delegate

delegate ('위임하다', '대리자' 라는 뜻을 가지고 있다)

delegate는 어디에 사용되는가?

  • 팝업을 만들때,
  • API통신 만들때, (로그인 후 어떻게 처리하고 로그아웃 후 어떻게 처리하는 지)
  • 이벤트 기반 시스템 만들 때,

등등에 사용된다.

delegate는 어떻게 사용하는가?

delegate는 함수에 대한 참조들을 가지고 있는 타입이다.
delegate를 변수처럼 사용할 수 있다.
delegate를 매개변수로 전달 가능하다.
=> 함수를 변수처럼 저장하거나, 매개변수로 전달 가능하다.

다음과 같이 delegate 변수를 만들고 함수를 저장할 수 있다.

delegate 반환형 델리게이트이름(매개변수);

델리게이트이름 변수이름;

변수이름 = 함수이름1;
변수이름 += 함수이름2;

delegate는 외부에서 실행가능하다.

event

event
기본적으로는 델리게이트의 한 종류이다.
특정 이벤트가 발생하면 연결된 함수들을 호출하는 구조이다.
옵저버 패턴과 유사하게 활용할 수 있게 도와준다.

옵저버 패턴?
객체를 관찰하는 옵저버들이 객체의 변화를 감지하여 옵저버를 보낸 객체에게 알림을 보내는 패턴.

다음과 같이 event 변수를 만들고 함수를 저장할 수 있다.

event 델리게이트이름 변수이름;

변수이름 += 함수이름;

event는 구독기반 로직이며 외부에서 실행불가하다.

delegate와 event의 차이점

delegate는 외부에서 직접 호출이 가능하다.
event는 외부에서 구독에 대한 작업만 가능하고, 외부에서 직접 호출이 불가능하다.

profile
미숙한 초보 게임 개발자
post-custom-banner

0개의 댓글