基于对象是从面向过程向面向对象的过渡。我写这篇小文的目的就是想尽可能多地丰富数组对象的功能。书中提到应该有的功能,原文如下:
1、数组类的实现中有内置的自我意识。首先,它知道自己的大小。
2、数组类支持数组之间的赋值、以及两个数组之间的相等和不相等的比较操作。
3、数组类应该支持对其所含的只进行下列查询操作:数组中最小值是什么?最大值是什么?某个特殊的值是否在数组中?如果存在,它的第一个位置的索引是什么?
4、数组类支持自排序。
除了支持数组操作,还必须支持数组本身的机制,包括:
5、能够指定长度,以此来创建数组(这个值无需在编译时刻知道)。
6、能够用一组值初始化数组。
7、能够通过索引来访问数组中的单个元素。
8、能够截获并指出错误的索引值。
而实际上,在开发过程中,数组的功能远不止于此。
1、能够扩展,包括水平和垂直扩展两方面。水平方向,自排序的关键字可能不止一个元素,需要多个成员才能共同确定;垂直方面,数组的成员可能是另一个数组类型的对象。这两种扩展正是我们认识世界描述世界的基本方式。
2、能够文档化。把扩展后的庞大数组存在数据库中,在需要的时候,再从数据库中取出。如果数组成员指向某个动态库文件中的相应的函数,则库文件完全可以由数据库统一管理,由代码选择调用。
3、能够动态增删成员。为了使数组对象能够适应开发,随时有可能根据当前需要,动态增删成员。增是为了实现描述和处理,删是为了节约消耗。
4、能够查询对数组的操作记录和回溯。这有点像数据库的操作,但是对一个庞大的数组对象,显然也是需要的。不过这一点可以在文档化时解决。
5、能够查找符合条件而非单单是索引的数组元素。
6、可变长。
以上就是笔者当前想出来可能需要的功能。