在设计的时候我联想到类似这幅画的结构,但是不会封装,画面: 有个建筑队,有一个包工头,N个工人假设4个,一个工具箱,工具箱里有N个工具,假设4个,包工头不做事,只指挥工人做什么事,使用什么工具; 工人使用指定的工具做指定的事情,在做事情的时候要跟包公头报告进度,做完之后报告包工头,包工头再给他们分配相应的任务。
对应关系:
建筑队:用户接口; 包工头: 线程调度对象 ; 工人: 工作线程; 工具箱 :下载方式; 任务: 下载0那个文件,或者从某个文件的某个地方下到某个地方。
目的是想把线程与任务还有 下载的实现方式分开来, 我以前做的是几种方式混在一起的,我想增加别的下载方式或者修改某个方式时都很不方便。