



유연성, 확장성
델리게이트를 사용했을때 동적으로 할당이 가능하다.
예를 들면 프로그램이 실행 중에 여러가지 다른 메서드로 델리게이트의 인스턴스를 변경하여 사용할 수 있다.
코드 결합도 감소
델리게이트를 사용하면 호출자와 호출되는 메서드 간의 결합도를 낮출 수 있다.
즉 호출자는 델리게이트의 타입만 알면 되고 실제 구현 내용을 알 필요가 없다(메소드가 정확하게 어떻게 작동하는지 알필요가 없다).
유지보수, 테스트에 용이함
델리게이트를 사용한다면 같은 시그니처를 가진 다양한 메서드들을 델리게이트로 묶어서 관리할 수 있다 -> 테스트와 유지보수에 도움이 된다.
델리게이트를 사용하지 않는 것이 더 적합한 경우는 코드가 간단하고 복잡도가 낮으며, 메서드 호출이 한 곳에서만 발생하는 경우다. 이런 경우에는 델리게이트의 유연성과 동적 할당 기능이 필요하지 않을 수 있으며, 직접적인 메서드 호출이 코드의 직관성을 높이고 이해하기 쉽게 만들 수 있다."
