zoukankan      html  css  js  c++  java
  • GUI进化--数据与界面分离

    http://blog.csdn.net/doon/article/details/5946862

    1。何谓数据和界面分离?

    GUI,即Graphic User Interface,人机交换界面。连接两端:终端用户--内部逻辑。它关联到两个角色:使用者和开发者。

    用户希望看到的是,一个一个的界面元素:窗口、按钮、输入框等等可视和可操作的元素;开发者希望看到的是数据,数字、字符串或者数组、表等数据结构

    传统的GUI,例如Gtk,Qt,Windows,甚至有Android等界面,基本上是把界面和数据混在一起的。一个输入框,它表示的是一个字符串(当然,也可以派生出一个数字输入框),一个list框保存的是一个字符串列表等。

    从开发者的角度看,必然先得到这个对象,才能读取数据。

    但是,如果我们深入思考,开发者无非希望得到一些数据而已,不关心数据是以何种风湿展示的。对这些数据进行分类,可以发现,其格式可能非常有限,如基本的数据类型有数字型和字符串型;基本的数据保存方式有:表型(包括数组、各种链表等),树形等结构。

    当然,根据领域的不同,还有很多区分,如,数字型可以进步细化为整数、实数,以及货币类型等和现实应用相关的类型。这些类型都是对数字型加以特定条件的约束而定义的。

    这些基本的类型,可以和多种GUI的元素绑定,如数字型,可以和标签组件、输入框等绑定;而表型则可以和list等控件绑定。

    这样,我们就可以把整个划分为两部分:

       1。数据部分:提供给开发者使用的接口,只和业务逻辑相关,和如何展示无关

       2。现实部分:展示给用户的,它可以使用各种效果,却不影响业务逻辑的变化。

    2。为什么要做这样的分离?

    做这样的分离,其实有很多好处:

    1。界面编程会变得很简单,因为开发者只要学会有限的数据类型就可以了。

    2。是为了解放界面编程,更好的实现界面的可视化。我们都知道,一个界面元素(widget或者控件),它的编程很困难,需要定义良好的接口,这种接口实际上要提供给很多方面使用,如

       1) 提供给开发者使用

       2) 提供给特定的工具使用,让它生成界面的描述资源

    而一个界面元素开发完成后,往往觉得不够美观,不能适应用户的需求,往往需要做很多定制,甚至重新开发。往往事倍功半。

    那么,把数据分离出后,数据的接口将标准化,而界面元素不必费尽心机的制定界面接口了。实际上,接口可能只是为了给特定工具使用了。

    3。界面和数据分离,其实可以让界面的渲染和数据的存储脱离,可以实现界面后台渲染。这对界面的丰富度和响应时间都是质的飞跃。

    界面可以更加从容的实现界面的诸多特效。

    而且稳定性也会大幅度的增加。

    3。如何实现?

    界面和数据分离,关键制定界面数据的交换方式。这是框架所需要的。

    在以后的讨论中,我考虑类似服务器和客户端的模式,通过定制一系列的协议来理清它们之间的关系。

  • 相关阅读:
    MongoDB中级---->关联多表查询
    Java爬虫,信息抓取的实现
    Android Java汉字转拼音总结
    Android使用Activity用作弹出式对话框
    利用Theme自定义Activity间的切换动画
    ListView滑动删除 ,仿腾讯QQ
    CentOS 6.2+Nginx+Nagios,手机短信和qq邮箱提醒
    玩转Web之easyui(三)-----easy ui dataGird 重新指定url以获取不同数据源信息
    rsyslogd: error during parsing file /etc/rsyslog.conf, on or before line 55: warnings occured in fil
    升级automake和autoconf
  • 原文地址:https://www.cnblogs.com/feng9exe/p/7340691.html
Copyright © 2011-2022 走看看