Re: 請問 Java Templete

看板java作者時間20年前 (2004/07/03 20:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ 引述《adrianshum@kkcity.com.tw (Alien)》之銘言: > ※ 引述《opdd.bbs@bbs.ntu.edu.tw (opd)》之銘言: > > 約略看過原文, 當中說到的 Generics 的缺失好像 > 與 inheritence 無關?... > 因為看不到 iostream 兄的原文, 所以順便 > 在這裡回.... :) > 我說的 data collection 與 streaming 是指 STL > 而已. 因為之前有人提及會不會有 Java 的 STL. > 我只是指出 C++ 中的 STL 主要是為了 data collection > 及 streaming 而已 :) > 你提供的資料實在太好了 :) > 的確看來 Java 的 Generic (C# 的也一樣嗎?) > 相比起 C++ 的 template 還是差很遠. > 正如 Sun 所給的 example, 暫時來說 Java 的 > Generic 的功能主要還只是作 auto-casting 及 > compile-time type checking. > 倒是, 在一般的 template 應用, 這大概就夠提 > 供其中 70% 的要求了. 雖然 Java Generic 不及 > C++ 的 template, 但至少還差強人意吧? :) > Alien Java的焦點一直是純物件導向的語言,因此在創造時,就沒有考慮到 Generics的問題,在以後即使是JDK 1.5加入了Generic的功能,但仍 舊沒法子在Bytecode中實作出 Generic,這一點C#倒有先見之明,在 IL code中,預設了這塊空間,因此論執行效率,C#是優於Java的, 但不管是Java或是C#在generic的實作上,皆遠遠不及C++,在 Java/C# 裡頭,Generic 機制仍是鎖定在 Container的部份,但是光看STL就知 道template絕不止於此,更有甚者,大家看到ATL/WTL的架構,利用 tempalate的機制巧妙配合multiple inheritance,可以避免掉MI過 程中,動態繫結(dynamic binding)所造成的困擾。Modern C++ Design一書中談到,多重繼承與泛型編程,各有優缺點,很妙的是, 兩者的優劣之處正好互補。繼承隨之而來的是動態的多型(polymorphism) ,泛型隨之而來的是靜態的多型。你不得不佩服C++之父,他在創造 C++之時,就不獨自把C++鎖定在任何一種編程範圍。他定義C++就是 更好的C 物件基底的編程(ADT) 物件導向 泛型編程 現在從C++ 不斷推出的Library看來,template 大有後來居上的感 覺,尤其是WTL更被視為Microsoft有史以來的顛峰之作。 -- 包龍星 : 大家聽到了,是他讓打我們才動手的。 師爺 : 這樣的要求,我一輩子都沒聽到過。 -- ○ Origin: 新竹師院 風之坊﹝bbs.NHCTC.edu.tw﹞From: 218-174-12-77.dynamic.hinet.net
文章代碼(AID): #10vg0500 (java)
文章代碼(AID): #10vg0500 (java)