User:Brahmana:Biesi Diagram Explained
This is my understanding of what Biesi has drawn up here: [1]. Only the first diagram is explained here.
Whenever an user clicks on a link the URILoader service is called up. Now if the content type is unknown then the HelperAppService comes into picture. The URILoader calls the HelperAppService with the DoContent menthod. Now this HelperAppService interacts with another service and finds out the MIME type of the content. Then it creates an instance of the ExternalAppHandler to handle this particular download and returns this handler to the URILoader module.
So the HelperAppService is a singleton and acts as a daemon process creating an instance of ExternalAppHandler for every download.
The URI loader sends the start request to the handler and handler then creates an instance of the HelperAppDialog where the user can choose the action needed to be taken.