делегат это просто более элегантный способ, чем засовывать класс в класс, т.к. во втором случае будет доступ на все открытые методы и параметры, а в делегате можно разрешать только определённое без лишних инкапсуляций.
хотя может я и неправильно думаю