Posted on 2006-11-20 21:50
itspy 阅读(2298)
评论(10) 编辑 收藏 所属分类:
设计模式 、
JAVA技术
在JAVA里面,有如下几个不一致的地方
得到数组的大小,要通过length属性
得到String的大小,要用length方法
得到集合(比如List,Set)的大小,要使用size方法。
反正我是记忆这些有好多次了,结果刚才写这篇Blog时,还要去查文档,要不然写错了被人骂就亏大了。当然JAVA类库这样设计也许有它的道理,但我想从使用的角度来想,也许把这三个统一(只使用一种)起来会更好。
我说的这个不一致性,我想也许有些人不认同,所以一直放在心里没有说明。但今天我发现有一位大师和我的想法一样,于是腰杆子变硬了,于是写了这个Blog给大家分享。
这位大师就是《Effective C++》的作者,他在这本书中也得到了,STL在这方面就做的特别一致。(不好意思,拉个虎皮做大衣了^__^)
说到这我又想起以前一个同学做的一个软件,它设计了一个类似资源管理器的软件,使用树状结构来管理一些资源。在给我看的时候,我发现我添加一些节点时,老是弹出这样的错误提示:“这是树的根,一个树只有一个根”。我才发现他把开发中的思维带入了,程序设计与开发中,没有从使用者的角度来想。
没错,一个树是只有一个根,你的软件也许是要使用树结构来管理才方便,但是你如果考虑到使用者的感受你就不会出现这样的错误提示了。我当时就向他提议:比如可以这样,如果你把根隐藏起来,不让使用者看到,这样你不就可以使用树的结构,但是使用者在使用时就没有这样的限制。
看看Windows的资源管理器,我们平时也知道他的设计是一个树,但是没有人留意到,它是一个严格的树吗?你一直往上走的时候,最终的结点是桌面,他明显不是树的根,而只是树上的一个支结点。这样的设计太符合我们的使用习惯,以至于我们平时都忽略了它,对它熟视无睹。
反正我是认识,就向实践是检验真理的唯一标准一样。一好好的设计的检验就要看,这个设计的最终使用者的体验来检验。上面的那个JAVA的不一致性,如果大多数JAVA语言开发者都遇到了我这样的问题,那么这个设计肯定是有它的不足的了。