[Design Pattern] 디자인패턴 -Delegate Pattern (델리게이트 패턴)
2022. 8. 14. 03:22ㆍARCHITECTURE/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
반응형
'ARCHITECTURE > Design Pattern' 카테고리의 다른 글
[Design Pattern] 디자인패턴 -MVC 패턴 (0) | 2022.09.18 |
---|---|
[Design Pattern] 디자인패턴 -Singleton Pattern (싱글턴 패턴) (0) | 2022.08.11 |