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