閱讀925 返回首頁    go 技術社區[雲棲]


《數據結構與抽象:Java語言描述(原書第4版)》一2.1.2 一組核心方法

本節書摘來華章計算機《數據結構與抽象:Java語言描述(原書第4版)》一書中的第2章 ,第2.1.2節,[美]弗蘭克M.卡拉諾(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. Henry) 著 羅得島大學  新英格蘭理工學院 辛運幃 饒一梅 譯 更多章節內容可以訪問雲棲社區“華章計算機”公眾號查看。

2.1.2 一組核心方法

基於Java語言數組實現的ADT包吸收了教室示例中展現的一些想法。由此得到了類ArrayBag,它實現了在程序清單1-1中見到過的接口BagInterface。接口中的每個公有方法對應於ADT包的一個操作。我們記得,接口為包中的對象定義了泛型T。我們在ArrayBag的定義中也用到了這個泛型。
類ArrayBag的定義可能相當難懂。該類確實有不少的方法。對於這樣的類,你不應該定義整個類,然後試圖去測試它。而是應該先確定一組核心方法(core method)來實現並測試這些方法,然後再繼續定義類中的其他部分。將其他方法的定義留待稍後解決,可以集中注意力,並簡化你的任務。但哪些方法應該屬於這組核心方法呢?一般地,這樣的方法應該是類的重要目的,且允許合理的測試。有時稱一組核心方法為核心組(core group)。
當處理包這樣的集合時,在集合創建之前尚不能測試大多數的方法。所以,將對象添加到集合中就是一個基本操作。如果方法add沒能正確工作,測試像remove這樣的方法將是毫無意義的。所以,包的add方法是我們首先要實現的核心方法組的一部分。
為測試add是否能正確工作,需要一個能讓我們看到包內容的方法。方法toArray可用於這個目的,所以它是一個核心方法。構造方法也是基本的,並在核心組內。類似地,核心方法可能調用的任何方法也是核心組的一部分。例如,因為我們不能將項添加到滿包中,所以方法add通過調用私有方法isArrayFull來發現一個滿數組。
核心方法。我們已經確定下列核心方法屬於類ArrayBag的初稿部分:
構造方法
image

有了這些核心方法,我們能構造一個包、向其中添加對象、查看結果。在這些核心方法能正確工作之前,我們先不實現其餘的方法。

注:像add和remove這樣能改變集合底層結構的方法,可能是與實現最緊密的方法。一般地,這類方法的定義應該先於類中的其他方法。但因為在add正確之前我們不能測試remove,所以我們將remove的實現延到add完成且進行充分測試之後再進行。
程序設計技巧:當定義一個類時,實現並測試一組核心方法。從向對象集合添加對象及與之相關的方法開始。

最後更新:2017-06-26 16:33:28

  上一篇:go  《數據結構與抽象:Java語言描述(原書第4版)》一2.1.3 實現核心方法
  下一篇:go  安裝PHP的memcache擴展