GUI进化2--数据的定义(1)基本数据的定义
2010-10-17 16:23
316 查看
上文提到,数据和界面分离,本文,将重点探讨数据的定义上。
由于内容较多,本文只对基本数据进行处理。
对于常规开发,计算机内的基本数据可以分为数字型和字符串型两种。每种数据类型都包含很多子类型,而且有很多限制条件。
1. 数字型
数字型包括很多,如整数、实数、虚数。由于虚数在日常的编程中涉及不是很多,我们暂不考虑。
每种类型,根据存储空间的不一样,还有不同的范围,如整数,如果是char型,其范围是从-127~127,如果是unsigned char型,则是0~255。由于singed和unsigned,char,short,int,long等,是计算机内部约定的对整数范围上的界定,而不存在本质的区别,所以,我们把它们看做整数的不同范围。
2.字符串类型
字符串类型是计算机中重要的数据类型,它也有很多属性,如编码格式等。根据用途不同,字符串的也有很多限定,如URL的格式必定和表示一个人名字的字符串格式不一致。
我们知道,从人机交互方面讲,这些数据通常只会有如下操作:
1。从用户输入得到的数据,必须做有效性检查
2。展示给用户的数据,必须格式化。
我们这里提到的格式化,其内涵和一个printf函数类似,其外延要大的多。所谓格式化,即把数据转化为用户方便理解的形式:文字、图片等,展示在GUI上。
无论GUI层对数据做何处理,还是业务相关代码对数据做何处理,在业务相关的层面和GUI层面,他们之间存在一个约定:即数据的有效性。
所以,在界面和底层之间,数据交换的核心是,如何传达和保证数据的有效性。
数据有效性,实际上是数据是否是一个有限集合内的数据。举例来说,就人的年龄,以目前的科技,它的有效范围是0~150之间;另外比较典型的例子是,如果希望得到一个文件的路径名,它的集合则是:符合路径名规则,且在磁盘上存在的文件。
综合和界面的关系,
从整体上看,一个数据其实包括如下3个维度
1。类型
2。有效集合
3。格式化
格式化时通过GUI的界面元素来实现,而类型和有效集合是界面和底层所共享的。
数据的类型和有效集合,是在确定了程序的功能后,就应该确定的内容,GUI根据类型和有效集合来对数据进行格式化。
在GUI层面,允许用户从多个集合中选择一个值提供给底层。这个时候,需要列出集合可能值,但是,这也不是必须的。
这样,对这个有效集合,我们可以使用的操作有
1. 检测一个值是否在集合内
2。枚举集合内的值
这个有效集合,在编程语言内可以描述为一个接口,开发者可以通过实现这些接口对集合进行定义。这种方法,可以扩展预定义集合上的不足。
由于内容较多,本文只对基本数据进行处理。
对于常规开发,计算机内的基本数据可以分为数字型和字符串型两种。每种数据类型都包含很多子类型,而且有很多限制条件。
1. 数字型
数字型包括很多,如整数、实数、虚数。由于虚数在日常的编程中涉及不是很多,我们暂不考虑。
每种类型,根据存储空间的不一样,还有不同的范围,如整数,如果是char型,其范围是从-127~127,如果是unsigned char型,则是0~255。由于singed和unsigned,char,short,int,long等,是计算机内部约定的对整数范围上的界定,而不存在本质的区别,所以,我们把它们看做整数的不同范围。
2.字符串类型
字符串类型是计算机中重要的数据类型,它也有很多属性,如编码格式等。根据用途不同,字符串的也有很多限定,如URL的格式必定和表示一个人名字的字符串格式不一致。
我们知道,从人机交互方面讲,这些数据通常只会有如下操作:
1。从用户输入得到的数据,必须做有效性检查
2。展示给用户的数据,必须格式化。
我们这里提到的格式化,其内涵和一个printf函数类似,其外延要大的多。所谓格式化,即把数据转化为用户方便理解的形式:文字、图片等,展示在GUI上。
无论GUI层对数据做何处理,还是业务相关代码对数据做何处理,在业务相关的层面和GUI层面,他们之间存在一个约定:即数据的有效性。
所以,在界面和底层之间,数据交换的核心是,如何传达和保证数据的有效性。
数据有效性,实际上是数据是否是一个有限集合内的数据。举例来说,就人的年龄,以目前的科技,它的有效范围是0~150之间;另外比较典型的例子是,如果希望得到一个文件的路径名,它的集合则是:符合路径名规则,且在磁盘上存在的文件。
综合和界面的关系,
从整体上看,一个数据其实包括如下3个维度
1。类型
2。有效集合
3。格式化
格式化时通过GUI的界面元素来实现,而类型和有效集合是界面和底层所共享的。
数据的类型和有效集合,是在确定了程序的功能后,就应该确定的内容,GUI根据类型和有效集合来对数据进行格式化。
在GUI层面,允许用户从多个集合中选择一个值提供给底层。这个时候,需要列出集合可能值,但是,这也不是必须的。
这样,对这个有效集合,我们可以使用的操作有
1. 检测一个值是否在集合内
2。枚举集合内的值
这个有效集合,在编程语言内可以描述为一个接口,开发者可以通过实现这些接口对集合进行定义。这种方法,可以扩展预定义集合上的不足。
相关文章推荐
- TypeScript01:如何定义包括多种基本数据类型的数组?
- int(long)类型长度由啥决定(好)|__int64是微软virtual C++编译器定义的基本数据类型非C++标准规范(协会)里定义的一种基本数据类型
- 今日内容介绍 1、自定义类型的定义及使用 2、自定义类的内存图 3、ArrayList集合的基本功能 4、随机点名器案例及库存案例代码优化 ###01引用数据类型_类 * A: 数据类型
- php常量,预定义常量,魔术常量及基本数据类型
- Windows基本数据类型 和常用的预定义句柄类型
- 数据结构之数组定义及基本操作
- 定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(count)...
- Java语言基础{Java_se(02)}-字面量和常量-变量的基本定义和使用-Java表达式-数据类型和分类-基本数据类型的转换-算数运算符-赋值运算符-比较运算符-三元运算符-逻辑运算符
- OpeCV中常用基本数据类型的定义分析之二
- Windows API中定义的基本数据类型简介
- windows api中定义的基本数据类型简介
- mysql基本定义--数据类型
- 用类名做方法的返回值类型 在学习Java的初始阶段,很多同学使用基本数据类型定义变量和引用类型定义变量以及使用类名做方法的返回值类型常常不知所以。今天我以自己的解读方式和个人的理解作一个简单的解释,和
- windows api中定义的基本数据类型简介
- 编译器定义的C/C++语言各种基本数据类型的取值范围
- 数据仓库专题(9)-基本概念和定义(整理自互联网)
- 定义一个不受计算机字长限制的整数类INT,要求INT与INT以及INT与C++基本数据类型int之间能进行+、-、×、÷和=运算,并且能通过cout输出INT类型的值。(持续添加)
- 2013年8月17日、二维数组定义的格式|用java表现一个描述小汽车|基本数据类型参数传递|
- C++第四周中提供了多种基本的数据类型(任务四)定义一个工资类
- windows api中定义的基本数据类型简介