I have to do a design of a DownloadManager, but my main question is related to the notifications that a Download can send to the DownloadManager<
DownloadManager
Download
DownloadManager<
Callbacks FTW. It is simpler, and in the vast majority of cases, simplicity influences every other aspect of the project in a positive way, including development, debugging, optimization, documentation and further maintenance.