zoukankan      html  css  js  c++  java
  • 【原创】下载通用工具“DownLoadNode”系列——2、类设计与使用Demo

    上篇介绍了设计思路,本篇主要介绍类的设计,以及如何使用的Demo。

    一、类的设计

    1.DownloadNodeBase:包含了下载结点需要的通用的属性和方法

    2.LeafDownloadNode:此类继承自DownloadNodeBase,表示下载任务树中的“叶子结点”,负责具体下载事务的处理

    3.LinkDownloadNode:此类继承自DownloadNodeBase,表示下载任务树中的“关联结点”,不负责具体下载事务的处理,而是收集“叶子结点”的工作反馈信息,统计自己负责的任务集的进度情况,并向外界(通常是父节点)发出通知

    下面是类关系图:

    image

    二、使用说明

    下面的图片演示了如何构造1个资源,这个资源含有2个文件

    image

    a)第一个参数是表示用户自定义数据,我这里是用一个字符串简单表示一下。可以是任何类型的数据。

    b)url表示要下载的文件地址,saveto表示下载后保存的文件名

    怎么样,是不是理解了呢.其实很简单,我们先构造了一个表示资源的“连接结点”,然后又构造了2个表示文件的“叶子结点”,再把叶子结点加到连接结点下面,就构成了一个简单的2层关系。

    下面我想强调的是:

    层级关系是可灵活制定的

    所以下面的图片演示了如何把这1个上述类型的资源和一个单独的文件构造成一个特殊的层级关系:

    image

    a)需要下载整个任务树,只需要调用根节点的SpecialRoot.Download()方法即可。是不是很方便呢^_^

    b)如果你只想下载某个子树或者叶子结点,就直接调用它的Download方法吧,所有消息都会自动被每个结点收集。

    三、Demo截图

    下面是我自己的一个Demo的截图,可以看到每个结点的状态和进度都是自动变化的。

    image

    四、Demo与源码下载

    与往常一样,本系列用到的源码和Demo代码下载地址都是公开的,有兴趣的朋友可以点此下载。有什么意见和建议,或者你有更好用的组件,欢迎也和大家进行分享。

  • 相关阅读:
    Java在处理大数据的时候一些小技巧
    大并发处理解决方案
    数据库SQL优化大总结之 百万级数据库优化方案
    DotNet中的计时器线程计时器
    System.Threading.Timer的使用技巧
    Asp.net Mvc 请求是如何到达 MvcHandler的——UrlRoutingModule、MvcRouteHandler分析,并造个轮子
    C#-结构
    @Html.ActionLink(),@Html.Raw(),@Url.Action()等
    bootstarpt-table小结
    input[ type="file"]上传文件问题
  • 原文地址:https://www.cnblogs.com/wbpmrck/p/2072527.html
Copyright © 2011-2022 走看看