潛魚在淵

          Concentrating on Architectures.

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

          代碼檢查(4)

          Posted on 2008-10-27 20:25 非魚 閱讀(2543) 評論(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的修改基本都是開放的,需要慎重評估;這里最大的問題不是能否改正確,而是增加了變動的范圍,使得在代碼引入缺陷的幾率大大增加了。

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


          , ,

          主站蜘蛛池模板: 兴山县| 门头沟区| 呼图壁县| 冀州市| 泗阳县| 沙雅县| 鲜城| 青河县| 涡阳县| 定日县| 漳平市| 达孜县| 漳浦县| 平昌县| 庆阳市| 连云港市| 公主岭市| 正镶白旗| 高邮市| 奈曼旗| 上虞市| 阿拉善盟| 仁怀市| 崇阳县| 北安市| 天气| 蓝田县| 陆河县| 吉林省| 萨迦县| 长乐市| 万宁市| 岢岚县| 永和县| 怀远县| 桂阳县| 长武县| 科技| 含山县| 都昌县| 湖口县|