bran wrote:oo的部份我是從java開始接觸到,可是說不上會。...(恕刪) 我本身早期學資料結構&演算法是用 Pascal ,後來用 java 開發 web-based 的應用,也跟你一樣不知道該如何寫 OO,(寫了近兩年 jsp 之後)看了這本Java Multithread Design Pattern-Java多執行緒與平行處理,才瞭解如何使用 design pattern 的方式去解決問題,同時也熟悉 UML 的應用。這本書可以瞭解物件互相運作的型態,但是還不太需要用到「繼承」的技巧,因此如果看懂這本書的前 1/2 (因為後半的 thread 技巧頗複雜,我大概讀了三遍把它們全看懂),就應該可以熟悉「用物件的角度去解決問題」(還沒達到 OO 的程度,要底下那一本)。我實際的專案中有用到其中的「Single Threaded,Guarded Suspension,Read-Write Lock,Thread-Per-Message,Worker Thread,Future,active Object」這幾個 pattern,如果沒有這本書,我大概已經被客戶吊死了...這是一個日本人(結城 浩)寫的書,寫作非常嚴謹,不僅有例題、還有習題,每一道習題在書後都有「解答」(不是只有答案而已),解答完還有衍生思考,認真看過之後收穫不少。翻譯也很到位,頂多只有少少注音打錯字的小問題。繼續發現他也寫了 Design Patterns於Java語言上的實習應用 增訂第二版,因為有了前一本書對 UML 的熟練程度,讀這本書相對輕鬆很多。讀懂這本書能讓人知道如何看出問題的型態並轉化成哪一種 pattern 來處理,使用這裡的 pattern 解決問題的過程就會建立「繼承」跟「多型」真正的瞭解,如果看懂了,那你就會 OOP 了。順道還可以瞭解一些工具或 framework 的運作機制,因為大家都是用這些 pattern 來設計的,例如學會 Decorator 就知道 java.io 是搞什麼鬼、我沒看懂 Visitor 之前總是看不懂 SAX2 要怎麼寫、所有的 event-driven 都是 Observer pattern.. 等等,至於 OOA & OOD 的書,我也還在尋找,底下第三本書有一點涉獵到。在 amazon 看到一本書「 Java Objects」評價不錯, 發現有中譯本Java Objects 徹底研究 ,裡頭的 java 語法介紹得相當簡單,不過對於如何分析問題、需求,再轉化成設計並實作出來,讀起來比坊間總是用 ATM 系統當例子來教的那些書有感覺得多,雖然有一千多頁,算蠻好讀的,只是還算太淺了點。希望這些心得對你有些幫助。