基于對(duì)象是從面向過(guò)程向面向?qū)ο蟮倪^(guò)渡。我寫(xiě)這篇小文的目的就是想盡可能多地豐富數(shù)組對(duì)象的功能。書(shū)中提到應(yīng)該有的功能,原文如下:
1、數(shù)組類(lèi)的實(shí)現(xiàn)中有內(nèi)置的自我意識(shí)。首先,它知道自己的大小。
2、數(shù)組類(lèi)支持?jǐn)?shù)組之間的賦值、以及兩個(gè)數(shù)組之間的相等和不相等的比較操作。
3、數(shù)組類(lèi)應(yīng)該支持對(duì)其所含的只進(jìn)行下列查詢(xún)操作:數(shù)組中最小值是什么?最大值是什么?某個(gè)特殊的值是否在數(shù)組中?如果存在,它的第一個(gè)位置的索引是什么?
4、數(shù)組類(lèi)支持自排序。
除了支持?jǐn)?shù)組操作,還必須支持?jǐn)?shù)組本身的機(jī)制,包括:
5、能夠指定長(zhǎng)度,以此來(lái)創(chuàng)建數(shù)組(這個(gè)值無(wú)需在編譯時(shí)刻知道)。
6、能夠用一組值初始化數(shù)組。
7、能夠通過(guò)索引來(lái)訪(fǎng)問(wèn)數(shù)組中的單個(gè)元素。
8、能夠截獲并指出錯(cuò)誤的索引值。
而實(shí)際上,在開(kāi)發(fā)過(guò)程中,數(shù)組的功能遠(yuǎn)不止于此。
1、能夠擴(kuò)展,包括水平和垂直擴(kuò)展兩方面。水平方向,自排序的關(guān)鍵字可能不止一個(gè)元素,需要多個(gè)成員才能共同確定;垂直方面,數(shù)組的成員可能是另一個(gè)數(shù)組類(lèi)型的對(duì)象。這兩種擴(kuò)展正是我們認(rèn)識(shí)世界描述世界的基本方式。
2、能夠文檔化。把擴(kuò)展后的龐大數(shù)組存在數(shù)據(jù)庫(kù)中,在需要的時(shí)候,再?gòu)臄?shù)據(jù)庫(kù)中取出。如果數(shù)組成員指向某個(gè)動(dòng)態(tài)庫(kù)文件中的相應(yīng)的函數(shù),則庫(kù)文件完全可以由數(shù)據(jù)庫(kù)統(tǒng)一管理,由代碼選擇調(diào)用。
3、能夠動(dòng)態(tài)增刪成員。為了使數(shù)組對(duì)象能夠適應(yīng)開(kāi)發(fā),隨時(shí)有可能根據(jù)當(dāng)前需要,動(dòng)態(tài)增刪成員。增是為了實(shí)現(xiàn)描述和處理,刪是為了節(jié)約消耗。
4、能夠查詢(xún)對(duì)數(shù)組的操作記錄和回溯。這有點(diǎn)像數(shù)據(jù)庫(kù)的操作,但是對(duì)一個(gè)龐大的數(shù)組對(duì)象,顯然也是需要的。不過(guò)這一點(diǎn)可以在文檔化時(shí)解決。
5、能夠查找符合條件而非單單是索引的數(shù)組元素。
6、可變長(zhǎng)。
以上就是筆者當(dāng)前想出來(lái)可能需要的功能。