IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

What really it is, not what it is

岁月如歌 2010-07-14 09:42:04 累计浏览 2,328 次
本机暂存

    看了 infinte 的这篇文章:再见,Button;你好,Command, 和我这半年的一些想法很相近,本质是对 UI Controls 的再次抽象分类。

    传统的 UI 控件分类,体现的是 what is looks like, 比如 Menu, Button, Tabs, Toolbar, Dialog, Grid, Tree 等等。

    近期新近的一些 UI 类库比如 jQuery EasyUI, 开始逐步抽象出 Draggable, Droppable, Resizable 等 Base 功能点,这些形容词已经逐步开始从 what to do, not what it is 层面开始抽象。虽然 EasyUI 最后体现出来的依旧是 Menu, Dialog, Tree 等传统 UI 控件,但抽象层次和代码组织等已经逐步演化。

    前不久在 InfoQ 发过一篇文章:构建 UI 组件的新思路, 介绍了 KISSY 类库中,通过 Switchable 抽象,实现 Tabs, Slide, Album 等 UI 控件的思路,抽象的出发点是 what really it is, not what it is.

    结合 infinte 的想法,画了一个还比较混乱的图:

    UI 3.0

    或许 UI 3.0 的时代真的来临了!

    比如 Autocomplete(自动补全组件)或 Suggest(搜索提示组件),可以这样实现:

    Suggest = Widget.combine(DataProvider, Overlay, Selectable);

    在现实生活中,我们需要实现一个复杂实体时,经常用到的办法是将简单的实体组合起来。比如法拉利,是一堆汽车零件的组合。不同的法拉利,是选用的零件或组合方法有差异。类、继承等 OOP 概念,真的不是必须的。去掉后,世界照样清晰。

    抽象、思考,思考、再抽象,多想想 what really it is, and what to do, not what it is. 我相信,未来是 UI 3.0 的世界!

    infinte 的文章让我很激动,上面的想法还很不成熟,UI 3.0 是我杜撰的(当然,希望以后会说是我首创的,哈哈)。大家随意看看,极其欢迎讨论,提出你的想法与建议。

同分类推荐文章

  1. translateZ() (2026-06-25 21:18:56)
  2. translateY() (2026-06-25 21:17:56)
  3. translateX() (2026-06-25 21:16:01)

查看更多 前端 文章 →

建议继续学习

  1. JQuery实现Excel表格呈现 (累计阅读 48,350)
  2. 深入理解Javascript之执行上下文(Execution Context) (累计阅读 18,404)
  3. 从输入 URL 到页面加载完成的过程中都发生了什么事情? (累计阅读 15,933)
  4. 图片动态局部毛玻璃模糊效果的实现 (累计阅读 14,849)
  5. 天朝第二代身份证号码的验证机制 (累计阅读 14,763)
  6. HTML 5 的data-* 自定义属性 (累计阅读 14,349)
  7. 分享一个JQUERY颜色选择插件 (累计阅读 14,223)
  8. 什么是全栈工程师? (累计阅读 14,038)
  9. 快速排序(Quicksort)的Javascript实现 (累计阅读 11,735)
  10. 7 天打造前端性能监控系统 (累计阅读 11,188)