더북(TheBook)

40.1 대리자(위임/델리게이트)

대리자는 delegate 키워드를 사용하여 만듭니다. 대리자는 함수 자체를 데이터 하나로 보고 의미 그대로 다른 메서드를 대신 실행하는 기능입니다. 한 번에 메서드 하나 이상을 대신해서 호출할 수 있는 개념입니다.

다음은 대리자 보충 설명이므로, 모르는 내용이더라도 간단히 읽어 보고 넘어갑니다.

자동차 개체를 예로 들면, 대리운전처럼 대리자(대리운전 기사)가 집까지 좌회전( ), 우회전( ), 직진( ), 주차( ) 등 동작을 대신해서 할 수 있게 하는 개념과 비슷합니다.

메서드의 매개변수로 대리자 변수(개체)를 넘길 수 있습니다. 대리자를 사용하여 함수의 매개변수로 함수 자체를 전달할 수 있습니다.

메서드의 매개변수로 또 다른 메서드 호출을 넘기는 기능입니다.

대리자는 동일한 메서드 시그니처를 갖는 메서드 참조를 담을 수 있는 그릇 역할을 합니다.

대리자는 람다(lambda)와 개념이 같다고 보아도 됩니다.

대리자를 사용하면 함수를 모아 놓았다 나중에 실행하거나 실행을 취소할 수 있습니다.

대리자는 내부적으로 MulticastDelegate 클래스에서 기능을 상속합니다.

대리자는 앞으로 배울 이벤트(event)를 만들어 내는 중간 단계의 키워드로 존재합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.