首頁
中文書目錄
原文書目錄
 站內快速搜尋
資源中心
Book Series
Special Interest













■好消息,歐萊禮書籍已重新鋪貨至各大書局及網路書店,歡迎讀者選購       ■歡迎各院校採用歐萊禮書籍,學校團購請洽校園服務團隊

[書籍導讀]

JAVA Swing 第二版-進階篇


終於完成一項大工程,身為這本書的頭號讀者,在此要對 Java Swing 作個簡短的推銷。

用 IDE 的人一定會想,API 的資訊只要在程式碼中按個 F1 就會跳出一個視窗,呈現出 API 的使用說明,好一點的更會附帶範例,EX. MS 的 IDE。那你為什麼還要拿錢買書來查 API?作為資訊科技的愛好者(純粹的愛好者,除了這本書外,我的工作和電腦只有 0.01% 的關係:p),而非工作者,所以並不需要每天趕著把程式寫出來,或者要符合誰的要求,寫程式完全是為了自已的需要。所以理解一項技術比它能完成那些工作來得更重要(當然我不是工程師,可以說些風涼話)。寫程式時,我相信用 IDE 查絕對方便多了,但對技術觀念的吸收和理解絕對不是不停的寫程式和查 API 就可以了。當不是為了寫程式而查閱,而純粹只是閱讀這本書時,可以見林才見樹,或者以電腦術語,這是在學習 System 而不是個別的 API 細節。

自古以來,人便以抽象化來管理複雜的現象及爆炸的資訊。由少數的定義去推論整個實際系統的方法,是所有思想家追求的聖杯。從歷史中也不斷可驗證,當有一個適當的定義,和嚴謹的推論方法,可以解放人類的思考的限制,讓我們可以掌握、甚而管理更龐大的系統。現代物件導向方法,是由類別相互關係所定義出來的資訊隱藏層次的無限延伸來作資訊抽象化,但是推論方法只是類別的階層關係和包含關係而已。當資訊以資訊隱藏的程度管理時,舉例而言,假設你要讓你的元件可以和 Swing 的容器合作,你可以先完成你的元件所有的程式碼,這時你思考的焦點是放在元件的功能如何實作來達成目標,你不用思考要作用於其上的容器要怎麼和你的元件互動。當完成元件本身的功能性目標後,你把容器定義出來的一般化原則,即他可以處理什麼條件的元件,實作在你的元件上,此時你的思考集是中在如何和容器互動的處理。資訊隱藏層次讓你可以輕鬆的達到「分而治之」,解放你的腦袋不在迷惑於複雜系統中。

但上述方法的關鍵是資訊隱藏層度要如何取捨,才能讓功能與彈性恰到好處。明顯的,這要大量經驗累積的,而且它往往是由整體決定部份,需要累積的是系統整體的經驗。為求快速理解大量的資訊隱藏管理的方法,有很多人整理出 Pattern 讓你來應用,而 Swing 是一個用 Pattern 用到無所不在的系統。若你用心看這本書及學習 Swing 的話,一定能從中學習到許多 Pattern 的用法。另外,這些技巧是通用的,因為它並不依賴某種機器,甚至於某種高階語言,你學的是一種組織並管理程式碼的方法,所以理解組織方法你也理解程式庫作者它想要你怎麼用它的本意。

基於上述的要求,你會發現說明此種觀念的文件之中,圖片和表格是少不了的,因為它可以抽出重點而不至於讓你迷失在複雜細節中,而其文件組織邏輯和物件導向邏輯的一致性,是使你更容易學習此項系統,因為文件組織邏輯會影響你的思考邏輯。試想你從 javadoc 文件去理解一個 bean 而不是藉由屬性表(它已將屬性存取函式預作分類),時間心力會差多少。這是這本書見林見樹的功夫,它給的是一個良好的整體性理解(當然你要閱讀它,而不只是查閱它)和良好的文件組織邏輯,如同你已把 XML 文件用 DOM 組織並用樹元件來呈現,而不只是一個文字檔。

雖然好的語言或程式庫的主要目標,是只要使用者有片面的知識就可上手,可是若把程式工作作為一項藝術來看的話,片面的知識是寫不出漂亮的程式碼,或許這本書是為了不想用 IDE 自動產生的程式碼的人而寫的,而我也從 Swing 中的程式庫中學到了許多觀念。當然這本書是經過許多人的努力而變成你手上這本書,我們的願望是希望你能從中找到閱讀樂趣,並對你的程式工作有所幫助。


張簡稜剛
高雄 2002

| 首頁 | 聯絡我們 |
© 2009, O'Reilly Media, Inc. Taiwan Branch