Мы используем делегаты для реализации
событийной модели. В коде генерируется событие, на которое подписываются различные обработчики: логгеры, мониторы производительности, контроллеры и т.п. Собственно, обработчики событий — это методы, вызываемые с помощью делегатов. В результате код остаётся чистым и понятным, а функциональность обработчиков - конфигурируемой и расширяемой.