What is delegate pattern
Delegation
- 클래스 안에서, 다른 클래스의 객체를 클래스 위임 객체로써 갖고 있는 디자인 패턴
- Swift / Kotlin ( 객체지향 언어 ) 등에서 자주 사용됨
- 아래의 사진을 보면, C클래스는 A, B상속 받아 구현하려고 함
- 이때, B 클래스의 객체를 클래스 변수로 갖고 있음으로써 함수 호출을 위임하고 있음

Why do I need to use delegate pattern
- 클래스들간의 의존성 줄임
- 위 예시를 볼 때, C와 B와의 관계를 떨어 뜨려 놓을 수 있음
- 추상 함수의 구현체에 따라, 실제 행동을 달리 할 수 있더라도 C에서는 실제 구현이 다른지 아닌지 알 필요가 없어짐