隨筆 - 17  文章 - 49  trackbacks - 0
          <2006年8月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(1)

          隨筆分類(17)

          隨筆檔案(17)

          相冊

          最新隨筆

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          道虎紋: 靜態引入 機制

          ?

          管中窺虎

          在學習 java 1.5 的過程中,我使用了 sun 公布的 tutorial ,這份文檔寫的比較詳盡易明,但是對于想快速了解 tiger 而且具有較好 java 基礎的人來說,大篇幅的英文文檔是比較耗時間和非必需的,所以我將會歸納這份文檔的主要內容,在保證理解的底線上,盡力減少閱讀者需要的時間。

          ?

          在以下地址可以進入各新增語言特色介紹以及下載相關文檔(若有)。

          http://java.sun.com/j2se/1.5.0/docs/relnotes/features.html

          ?

          2006 8 17 星期四

          Static import

          ?

          要使用一個類的靜態成員,就要添加上類的名稱,比如:

          double ?r? = ?Math.cos(Math.PI? * ?theta);

          // theta是一個數值變量,不是外部static?成員,原文并未注明。

          為了擺脫這些類名,有些程序員會把靜態成員放到一個接口里然后去實現這個接口,這個可不好。實際上,這樣做已經糟糕到有幸成為了反模式:

          Constant Interface Antipattern 。(參加 Effective java Item 17 一個類用別的類的靜態成員是實現的細節,而當這個類實現這樣的接口時,這個接口就成為了這個類的接口的一部分,而實現細節是不應該漏入到 public 的接口中。

          static import 可以讓一個類可以不需要指定類名地使用靜態成員,而且不需繼承額外的接口,它引入了這些成員,可以單獨地或者全體引入:

          import ? static ?java.lang.Math.PI;

          import ? static ?java.lang.Math. * ;

          然后就可以簡潔地使用它們:

          ?

          double ?r? = ?cos(PI? * ?theta);

          ?

          static import 和以前的 import 類似, import 從包里引入 class, static import 從類里引入成員。

          又到了經典一問:何時該用這個新特色?

          要很謹慎地使用!只有當你不用它就被迫要么聲明外部 static 成員的本地副本要么就墮落到那個反模式中的時候,你才應該用它,換言之,當你需要頻繁地使用某一兩個類的靜態成員時才應該使用 static import 。濫用的后果就是讓你的代碼可讀性變差,命名空間被大量的引入的靜態成員所污染。若干星期后,連你自己都讀得不明不白。而且如果只是用得到其中的一兩個成員,就不要用批量的引入了。

          ?

          posted on 2006-08-17 18:10 Ye Yiliang 閱讀(1150) 評論(4)  編輯  收藏 所屬分類: Java

          FeedBack:
          # re: 第五道虎紋:靜態引入機制 2006-08-17 18:37 escout
          這種用法在.net2.0之中好像就有了  回復  更多評論
            
          # re: 第五道虎紋:靜態引入機制 2006-08-17 19:00 Ye Yiliang
          好的語法元素,總會在主流語言間互相學習和復制,呵呵@escout
            回復  更多評論
            
          # re: 第五道虎紋:靜態引入機制 2006-08-17 19:24 oliver456
          你寫的一系列的關于java tiger 的新語法、特征寫得很好,我在大四的時候,考java認證的時候,就是考的scjp5.0(里面全java tiger的新語法等 ),現在又一次學習!不過你還是要進一步深入~~~~  回復  更多評論
            
          # re: 第五道虎紋:靜態引入機制 2006-08-17 20:03 Ye Yiliang
          嗯,的確還是很淺薄,而且也不是自己寫的,是翻譯和一些簡化 :p@oliver456
            回復  更多評論
            
          主站蜘蛛池模板: 城市| 锡林郭勒盟| 红原县| 探索| 龙陵县| 望都县| 富裕县| 长汀县| 武功县| 金沙县| 孟连| 乡宁县| 锦州市| 麟游县| 大新县| 顺昌县| 股票| 南部县| 澳门| 怀化市| 汤原县| 沙湾县| 平邑县| 格尔木市| 赣州市| 富顺县| 香格里拉县| 德钦县| 弥渡县| 米泉市| 灵石县| 永安市| 云阳县| 黄陵县| 资中县| 溧阳市| 巴彦县| 昌图县| 静宁县| 潜江市| 庄河市|