delegate와 event

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

TIL (Tody I Learn)

목록 보기
19/53

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
미숙한 초보 게임 개발자

0개의 댓글

관련 채용 정보