潛魚在淵

          Concentrating on Architectures.

          posts - 77, comments - 309, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          代碼檢查(4)

          Posted on 2008-10-27 20:25 非魚 閱讀(2539) 評論(0)  編輯  收藏 所屬分類: 面向對象設計Java技術
          4. 使用集合(Collection)“類”而不是接口來定義變量

          集合類,或者說“容器”類,是Java平臺SDK中最常用的類,如果誰沒有用過集合類,他都不好意思跟人家說會Java語言。在這方面,Java相對于其他語言更加易用一些,提供了大量的常用集合類的實現。

          我印象中最早的通俗易懂的Java指導書,都會用Vector來舉例來說明集合類的用法。一方面 是因為這個類最易學,另一方面因為許多書籍編寫于Java 1.0、1.1時代,那時候也還沒有太多的集合類實現呢。

          隨著集合類的逐漸豐富,程序員們可選擇的余地越來越大。甚至隨著新版本JDK的發布,大家發現原來自己實現的集合類在新的SDK中有標準實現了。

          于是勤勞的程序員們(程序員們都應該是勤勞的)開始行動起來,修改、優化舊的代碼,采用新的或更加有效的實現方式,甚至有時候需要修改方法接口(此處指Method Signature)。

          對于本地變量、實例變量和靜態變量還好說,當你使用ArrayList替換Vector以求更高效率的時候,基本上只要修改變量定義的類型就可以了。但如果使用了集合類來定義方法的參數和返回值,修改代碼的影響范圍就不再局限于一個類的內部了。雖然現在的IDE都具備基本的Refactor功能,可以進行Change Method Signature的重構,但重構完了你要測試呀。不能完全依賴IDE及其他重構工具帶來的高效,涉及到Method Signature的修改基本都是開放的,需要慎重評估;這里最大的問題不是能否改正確,而是增加了變動的范圍,使得在代碼引入缺陷的幾率大大增加了。

          這時候就凸顯了使用集合接口定義變量的優勢。


          , ,

          主站蜘蛛池模板: 梧州市| 电白县| 永州市| 商丘市| 尼勒克县| 高邑县| 大洼县| 丹阳市| 瑞金市| 长治市| 广平县| 德昌县| 云南省| 彩票| 家居| 沾益县| 昌乐县| 财经| 宜春市| 陕西省| 丹东市| 宝鸡市| 台中市| 樟树市| 武隆县| 河东区| 郸城县| 班玛县| 鹿邑县| 集贤县| 庆云县| 怀集县| 三门峡市| 林芝县| 平昌县| 河源市| 营山县| 信丰县| 通化县| 屏边| 贞丰县|