[Design Pattern] 디자인패턴 -Delegate Pattern (델리게이트 패턴)

2022. 8. 14. 03:22ARCHITECTURE/Design Pattern

728x90
반응형

🧸 Delegate Pattern (델리게이트 패턴) 이란?

사전적의미는 '위임하다'라는 뜻이다.

즉 위임자를 갖고 객체가 다른 객체에게 자신의 일을 위임하는 형태의 디자인 패턴이다.

 

 

🧸 이벤트를 전달하는 방식

만약에 A뷰컨트롤러에서 B뷰컨트롤러로 이동할 때 A에서 B로 이벤트를 전달하는 방식은 쉽지만

반대로 B에서 A로 전달할 때에 Delegate패턴을 사용한다.

Delegate는 Protocol 과 쌍으로 사용한다.

B에서 이벤트가 발생했을 때 

A가 알 수 있게 전달해주는 것이고 A는 그것을 Protocol로써 알 수 있는 것이다.

 

 

✔️  사용예시 1

첫번째VC에서 두번째VC를 띄우고 두번째VC를 dismiss 했을 경우

두번째VC데이터를 첫번째VC로 가져온다

 

 

✔️  사용예시 2

A뷰컨트롤러에 B테이블뷰가 있다. B테이블뷰 셀안에 버튼이 있다.


   

A뷰컨트롤러와 B테이블뷰셀은 다른 파일이다.

B테이블뷰셀에 있는 버튼을 클릭했을 때 A뷰컨트롤러는 모른다.

알게 해주기 위해서 델리게이트패턴을 사용한다.

 

 

 

🧸 델리게이트 패턴을 사용하는 이유

위임자는 일을 어떻게 처리하는 지 모르고 일을 처리하는 방법은 객체에 구현되어 있다.

일을 해야하는 지 정해놓고 상황에 맞게 처리하는 코드를 작성하면 된다.

어떤 일을 처리하는 객체가 여러 개 있다고 가정하자.

이 때 객체들이 같은 일을 하는 데 다르게 처리할 때 델리게이트 패턴을 사용한다.

같은 일을 처리한다는 것은 같은 코드를 재사용한다는 것이고 각각에 맞게 객체에서 처리하면 유지보수도 쉬워진다.

같은 일이 아니더라도 처리해야할 일을 다른 곳에서 처리할 일을 할 수 있다는 장점이 있다.

 

 


🚨 정리 

  • 델리게이트는 기능이나 능력이나 특징 같은 것을 위임해주는 것이다.
  • 델리게이트는 프로토콜과 쌍으로 연결되어 사용된다.
  • 처리해야 할 일을 정해놓기만 하고 상황에 맞는 코드를 작성할 때 사용한다.
  • 코드를 재사용하고 유지보수하기 쉬워진다.

 

 

 

 

728x90
반응형