JavaScript组件开发:分析和设计组件

2016-02-20 00:59 3 1 收藏

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享JavaScript组件开发:分析和设计组件,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

【 tulaoshi.com - Web开发 】

毫无疑问,JavaScript 是一种非常灵活的脚本语言,有时候它像一只难以驯服的野马你受益于它的灵活性的同时,也要时刻提防它变得失去控制;另一方面,由于 JavaScript 通常会和宿主环境(比如浏览器)紧密结合,因此缺乏功能强大而简单易用的开发工具。在这样的环境中,开发组件或框架成为一项具有挑战的工作。
这次,我们将以一个简易的 JavaScript 组件开发为契机,逐步展开组件的分析、设计、实现、构建和测试等任务,探讨组件开发过程涉及的方方面面。这些探讨将分 4 篇陆续张贴出来(链接将在张贴后更新):

分析和设计组件 编码实现和算法 用 Ant 构建组件 测试 JavaScript 组件

现在,假设我们要从头开始设计并实现一个队列管理组件,先让我们来认识一下队列:

Queue

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

图片来自 Wikipedia.

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

队列是一个先进先出(FIFO) 的数据结构,只能向它的尾巴追加项,项从头部取出使用,这个规则将应用到我们所探讨的组件中去。对于队列,相信学过 C 或是数据结构课程的同学已有所了解,如果你已经把它还给了老师,请使用搜索引擎简单了解一下队列的知识。

这个队列管理组件具体要实现的功能是:它是个任务管理器,按高、中、低优先级维护着三个任务队列,客户(使用者)可以在任何时候把想要执行的任务添加到某个队列,可以指定任务运行的上下文,并传给它必要的数据。客户也可以随时运行这个队列,队列里的任务按照指定的依赖关系以合理的方式依次运行。

为了不至于使组件过于简单而缺乏实用性,我们特意给它添加了一些糖:分优先级、传入上下文和数据、处理依赖关系。如果把上面这段理解为需求的话,那么首先,我们要从中提取出最重要的关键词,它们直接决定了这个组件应该如何设计:

队列 优先级 依赖关系

然后,我们从中提炼出涉及的对象:

任务管理器 (TaskManager): 从目前需求来看,它只需要一个实例。 队列 (Queue): 每个优先级对应一个队列,由 TaskManager 管理这三个 Queue 实例。 任务 (Task): 描述添加的任务,放在相应优先级的 Queue 里面。 依赖 (Dependency): 描述单一的依赖,即 Task1 依赖 Task2, 显然某个 Task 可能具有多个依赖。

来源:https://www.tulaoshi.com/n/20160220/1633004.html

延伸阅读
标签: flash教程
通过此篇教程你可以大致了解Flash 组件 开发 整个过程,希望对那些想自己开发Flash 组件的朋友有所帮助。我这次主要开发Flash 代码组件,甚至其他Flash 组件,你可以自行研究或和我一起讨论。 【前提条件】: 1.安装了Flash CS3软件; 2.安装了Adobe Extension Manager 1.8 扩展管理器,如果没有请先到这里下载; 【开发 教程 】: 1.首先准备一...
从一个小例子开始,我们在上网浏览网页的时候经常需要看到一些多媒体的信息, 比如一端小录象,那么是不是在包括IE在内的浏览器会给自己加上一个多媒体播 放功能呢?答案显然是否定的。但显然我们也看到了听到了那些我们所需要的内容。 大家一定会说,这是因为我们的系统中有像Media player,RealOne Player这样 的播放软件,浏览器在需要它...
标签: flash教程
组件的样式 1、组件的样式方法 提供给我们的组件很单调,无论是颜色还是样式,都不能满足多姿多彩的网络的需求。庆幸的是我们可以通过组件的 FStyleFormat对象 来改变组件的颜色,可以通过手工的方式修改UI组件的外观。也可以自己来制作组件。 在库中有一个“Component Skins”元件文件夹,该文件夹里存储着...
这将是最后一个组件了,目标定为非可视化,事实上非可视化组件要比可视化组件难做,因为是从TComponent继承而来,就没有了很多属性和事件。而这些都要我们从头来做过。 这个非可视化组件,我决定为托盘组件,其中用到的技术较多,我不如列一个表出来,然后再来讲解好一点。另外,可能篇幅会多一些,请耐心看。 用到的技术: ...
标签: FLASH flash教程
通过此篇教程你可以大致了解Flash 组件开发整个过程,希望对那些想自己开发Flash 组件的朋友有所帮助。我这次主要开发Flash 代码组件,甚至其他Flash 组件,你可以自行研究或和我一起讨论。 【前提条件】: 1.安装了Flash CS3软件; 2.安装了Adobe Extension Manager 1.8 扩展管理器,如果没有请先到这里下载; 【开发教程】: 1.首先准备一个18...

经验教程

803

收藏

91
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部