Posted on 2006-11-20 21:50
itspy 閱讀(2315)
評論(10) 編輯 收藏 所屬分類:
設計模式 、
JAVA技術
?? 在JAVA里面,有如下幾個不一致的地方
?? 得到數組的大小,要通過length屬性
?? 得到String的大小,要用length方法
?? 得到集合(比如List,Set)的大小,要使用size方法。
?? 反正我是記憶這些有好多次了,結果剛才寫這篇Blog時,還要去查文檔,要不然寫錯了被人罵就虧大了。當然JAVA類庫這樣設計也許有它的道理,但我想從使用的角度來想,也許把這三個統一(只使用一種)起來會更好。
?? 我說的這個不一致性,我想也許有些人不認同,所以一直放在心里沒有說明。但今天我發現有一位大師和我的想法一樣,于是腰桿子變硬了,于是寫了這個Blog給大家分享。
?? 這位大師就是《Effective C++》的作者,他在這本書中也得到了,STL在這方面就做的特別一致。(不好意思,拉個虎皮做大衣了^__^)
?? 說到這我又想起以前一個同學做的一個軟件,它設計了一個類似資源管理器的軟件,使用樹狀結構來管理一些資源。在給我看的時候,我發現我添加一些節點時,老是彈出這樣的錯誤提示:“這是樹的根,一個樹只有一個根”。我才發現他把開發中的思維帶入了,程序設計與開發中,沒有從使用者的角度來想。
?? 沒錯,一個樹是只有一個根,你的軟件也許是要使用樹結構來管理才方便,但是你如果考慮到使用者的感受你就不會出現這樣的錯誤提示了。我當時就向他提議:比如可以這樣,如果你把根隱藏起來,不讓使用者看到,這樣你不就可以使用樹的結構,但是使用者在使用時就沒有這樣的限制。
?? 看看Windows的資源管理器,我們平時也知道他的設計是一個樹,但是沒有人留意到,它是一個嚴格的樹嗎?你一直往上走的時候,最終的結點是桌面,他明顯不是樹的根,而只是樹上的一個支結點。這樣的設計太符合我們的使用習慣,以至于我們平時都忽略了它,對它熟視無睹。
???反正我是認識,就向實踐是檢驗真理的唯一標準一樣。一好好的設計的檢驗就要看,這個設計的最終使用者的體驗來檢驗。上面的那個JAVA的不一致性,如果大多數JAVA語言開發者都遇到了我這樣的問題,那么這個設計肯定是有它的不足的了。