• [原创]WB Android客户端架构总结:发WB工作队列设计


    先简单说下需求,发一条WB包含多种类型,例如图片、视频、文字等,发送工作不能阻塞UI,工作队列易于扩展,方便优化。

    几个重要的类:

    JobManager:统一管理Job列表,包括job的添加、启动、终止等等;

    Job:具体工作类的基类,一个Job对应多个Operatoin,除了维护每个Operation,还管理着自己的各种状态;

    Operation<Result>:该类实现了RunnableFuture和Callable,是真正执行操作任务的基类,为了易于扩展,将返回类型设计为泛型。Operation之间可以相互依赖,当A依赖B时,B任务执行完A才会开始执行;

    OperationExecutor:继承自ThreadPollExecutor,是执行Operation的线程容器。

    下面是结构图:

    熟悉类之间的结构后,下面是一个典型调用过程的流程图:

     

    结构大致就是这样,总结一下,首先将Job细分成多个Operation,能够增加Operation的复用性,并且每个类型的Operation运行在独立线程,而Job只负责对不同Operation的组合方式,使框架更加容易扩展。缺点也比较明显,层次太多,增加回调通知的复杂度(各种Listener),比如Operation之间的回调通知,Operation与Job之间的回调,等等。

  • 相关阅读:
    ole辅助类sqlhelperaccess
    Asp.net中常用的26个性能优化方法
    MVP模式的相关知识
    ASP.NET AJAX入门系列
    非常实用]Asp.net常用的51个代码
    一步一步学Silverlight 系列文章
    .NET设计模式系列文章
    Asp.net添加上传进度条
    asp.net 用ajax实现文件上传
    增加弹出层的拖拽功能
  • 原文地址:https://www.cnblogs.com/coding-way/p/6296916.html
Copyright © 2020-2023  润新知