四个有害的Java编码习惯 - 编程入门网
考虑现有的持久化方案和框架,你会将
这个对象设计成什么样子?跟javabean相似呢还是完全不一样? 我认为会完全不一样,说明如下: 它不包含一个无参数构造方法(这一特征是javabean必备的。)。作者认为一个数据库记录的对象如果不包含任何数据是没有意义的。一个数据库表的所有字段都是可选的情况有多少? It would likely not have anything to say about events and listeners.(不太明白作者的意思) 它不强迫你用可变的对象。 它内部有一个数据验证机制。这样一个验证机制对大多数数据库应用非常重要。(记住对象的第一原则:一个对象应该同时封装数据和对数据的操作。在这种情况下,操作就是验证数据。) 数据验证机制可以给最终用户(end user)报错。 按照javabeans的说明,javabeans是用来解决特殊领域的问题:在图形界面程序的设计中充当小部件。说明中绝对没有提到数据库。但现在通常用javabean来做数据库记录的映射。从实际角度来讲,许多被广泛使用的框架要求应用程序使用JavaBeans(或者其它类似的规范)来映射数据库记录。这种滥用不利于编程者了解和使用不可变对象。 四个有害的Java编码习惯(4)时间:2011-01-27 yeeyan 译:Tanya4.私有成员排在其它成员的前面 类成员的排序没有按照成员的作用域的大小排列,而是把private放在前面。 以前的好莱坞影片开头总是长篇的荣誉。同样地,大多数Java类把私有成员放在最前面。示例3给出这种风格的典型例子:
然而,如果把私有成员定义放在后面,读者阅读会更容易。因为人们认识一个事物的通常过程都是从一般到特殊,从抽象层次来说,是从高层次到低层次的认识过程。如果你倒过来的话,读者就不能从整体上把握事物,也不能抓住事物的本质,只能在一堆具体的片段中迷失。 整体的抽象让你忽略了细节。抽象的层次越高,你可以忽略越多的细节。读者阅读一个类时可以忽略的细节越多他会越高兴。脑袋里填充太多的细节是痛苦的,所以细节越少越好。因此,将私有成员放在最后会显得更富有同情心,因为这样阻止了不必要的细节显露给读者。 本来C++程序的习惯也是像Java一样把private成员放在最开始。然而,C++社区迅速的认识到这是一个有害的规范,这个规范现在已经被修正。这里给出一个经典的C++风格指南里的注释: 注意:public 接口应该放在class的最开始,其次是protected成员,最后是private成员。原因是: 程序员应该更关心接口而不是具体实现。 当程序员需要用一个类的时候,他们需要的是接口而不是实现。 把接口放在开始是非常有意义的。把实现部分,私有部分,放在开始是一个历史遗留问题。最后还是要反复强调一下,一个类的接口的重要性超过实现细节。 同样,伦敦大学帝国学院关于C++的指面中也说到:把公有的部分放在前面,读者会更感兴趣阅读,然后是保护的部分,最后是私有的部分。 有人会持反对意见,认为读者可以使用程序文档来理解类,而不是直接看源代码。这种理由似乎不成立,因为程序文档中没有相关的实现细节,这时看源代码是很有必要的。 所有的技术文档,通常都把难理解的信息放在开头,比如抽象的学术论文。为什么Java不打破这种常规呢?把私有成员放在最开头部分看起来是不是打破常规的好习惯。这种习惯似乎是sun早期的编码规范造成的。 将代码按照javadoc的顺序编排是非常好的:首 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |