`
ydwcn
  • 浏览: 63587 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何编出健壮的代码,java编程30条规则(二)

阅读更多
如何编出健壮的代码,java编程30条规则(二)
  来源: 网络转载                       时间:2009-6-15
  (16) 若在初始化过程中需要覆盖(取消)finalize(),请记住调用super.finalize()(若Object属于我们的直接超类,则无此必要)。在对finalize()进行覆盖的过程中,对super.finalize()的调用应属于最后一个行动,而不应是第一个行动,这样可确保在需要基础类组件的时候它们依然有效。

(17) 创建大小固定的对象集合时,请将它们传输至一个数组(若准备从一个方法里返回这个集合,更应如此操作)。这样一来,我们就可享受到数组在编译期进行类型检查的好处。此外,为使用它们,数组的接收者也许并不需要将对象“造型”到数组里。

(18) 尽量使用interfaces,不要使用abstract类。若已知某样东西准备成为一个基础类,那么第一个选择应是将其变成一个interface(接口)。只有在不得不使用方法定义或者成员变量的时候,才需要将其变成一个abstract(抽象)类。接口主要描述了客户希望做什么事情,而一个类则致力于(或允许)具体的实施细节。

(19) 在构建器内部,只进行那些将对象设为正确状态所需的工作。尽可能地避免调用其他方法,因为那些方法可能被其他人覆盖或取消,从而在构建过程中产生不可预知的结果(参见第7章的详细说明)。

(20) 对象不应只是简单地容纳一些数据;它们的行为也应得到良好的定义。

(21) 在现成类的基础上创建新类时,请首先选择“新建”或“创作”。只有自己的设计要求必须继承时,才应考虑这方面的问题。若在本来允许新建的场合使用了继承,则整个设计会变得没有必要地复杂。

(22) 用继承及方法覆盖来表示行为间的差异,而用字段表示状态间的区别。一个非常极端的例子是通过对不同类的继承来表示颜色,这是绝对应该避免的:应直接使用一个“颜色”字段。

(23) 为避免编程时遇到麻烦,请保证在自己类路径指到的任何地方,每个名字都仅对应一个类。否则,编译器可能先找到同名的另一个类,并报告出错消息。若怀疑自己碰到了类路径问题,请试试在类路径的每一个起点,搜索一下同名的.class文件。

(24) 在Java 1.1 AWT中使用事件“适配器”时,特别容易碰到一个陷阱。若覆盖了某个适配器方法,同时拼写方法没有特别讲究,最后的结果就是新添加一个方法,而不是覆盖现成方法。然而,由于这样做是完全合法的,所以不会从编译器或运行期系统获得任何出错提示——只不过代码的工作就变得不正常了。

(25) 用合理的设计方案消除“伪功能”。也就是说,假若只需要创建类的一个对象,就不要提前限制自己使用应用程序,并加上一条“只生成其中一个”注释。请考虑将其封装成一个“独生子”的形式。若在主程序里有大量散乱的代码,用于创建自己的对象,请考虑采纳一种创造性的方案,将些代码封装起来。

(26) 警惕“分析瘫痪”。请记住,无论如何都要提前了解整个项目的状况,再去考察其中的细节。由于把握了全局,可快速认识自己未知的一些因素,防止在考察细节的时候陷入“死逻辑”中。

(27) 警惕“过早优化”。首先让它运行起来,再考虑变得更快——但只有在自己必须这样做、而且经证实在某部分代码中的确存在一个性能瓶颈的时候,才应进行优化。除非用专门的工具分析瓶颈,否则很有可能是在浪费自己的时间。性能提升的隐含代价是自己的代码变得难于理解,而且难于维护。

(28) 请记住,阅读代码的时间比写代码的时间多得多。思路清晰的设计可获得易于理解的程序,但注释、细致的解释以及一些示例往往具有不可估量的价值。无论对你自己,还是对后来的人,它们都是相当重要的。如对此仍有怀疑,那么请试想自己试图从联机Java文档里找出有用信息时碰到的挫折,这样或许能将你说服。

(29) 如认为自己已进行了良好的分析、设计或者实施,那么请稍微更换一下思维角度。试试邀请一些外来人士——并不一定是专家,但可以是来自本公司其他部门的人。请他们用完全新鲜的眼光考察你的工作,看看是否能找出你一度熟视无睹的问题。采取这种方式,往往能在最适合修改的阶段找出一些关键性的问题,避免产品发行后再解决问题而造成的金钱及精力方面的损失。

(30) 良好的设计能带来最大的回报。简言之,对于一个特定的问题,通常会花较长的时间才能找到一种最恰当的解决方案。但一旦找到了正确的方法,以后的工作就轻松多了,再也不用经历数小时、数天或者数月的痛苦挣扎。我们的努力工作会带来最大的回报(甚至无可估量)。而且由于自己倾注了大量心血,最终获得一个出色的设计方案,成功的快感也是令人心动的。坚持抵制草草完工的诱惑——那样做往往得不偿失。


分享到:
评论

相关推荐

    如何编出健壮的代码,java编程30条规则

    如何编出健壮的代码,java编程30条规则

    Java代码规则

    Java的最优书写规则,可以加强代码管理能力和可读性; 本文在参考业界已有的编码风格的基础上,描述了一个基于 JBuilder 的项目风格,力求一种统一的编程风格,并从整体编码风格、代码文件风格、函数编写风格、变量...

    java身份证号验证源代码

    java身份证号验证源代码

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    java开发项目本科毕业设计小程序上课考勤系统源代码.zip

    java开发项目本科毕业设计小程序上课考勤系统源代码java开发项目本科毕业设计小程序上课考勤系统源代码java开发项目本科毕业设计小程序上课考勤系统源代码java开发项目本科毕业设计小程序上课考勤系统源代码 ...

    java基础语法程序源代码

    列举了java语言基础知识的一些源代码,通过代码学习,理解,掌握,java的基本语法规则。为后续学习打下基础

    java实验代码

    同时,因正确的编出程序而带来的成就感让我对编程更加感兴趣。对于在这些实验过程中,请教老师、同学互助、查阅资料等基本的学习方式,使我更加领悟到集体和团队的力量,也树立了敢于攻坚的信心。

    Java编程规则

    Java编程规则 本附录包含了大量有用的建议,帮助大家进行低级程序设计,并提供了代码编写 的一般性指导!

    FP.rar_FPgrowth _FP算法代码java_关联规则_关联规则代码

    关联规则挖掘的FP算法java代码实现。里面包含两个.java文件,其中FPGrowth.java是程序入口

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    Java程序代码检查工具PMD

    PMD是一款采用BSD协议发布的Java程序代码检查工具。该工具可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等。该软件功能强大,扫描效率高,是Java程序员debug的好帮手。 ...

    Java代码书写规范

    Java代码书写规范 1 符号命名规则 符号名包括:模块名,变量名,常量名,方法(函数/子程序)名,数据区名,缓冲区名等。符号命名通常应遵循以下规则: 1.1 通用规则 (1)在所有命名中,都应使用标准的英文单词或...

    java代码书写规范

    符号名包括:模块名,变量名,常量名,方法(函数/子程序)名,数据区名,缓冲区名等。符号命名通常应遵循以下规则: 通用规则: 1、在所有命名中,都应使用标准的英文单词或缩写。不得使用拼音或拼音缩写,除非该...

    Java面向对象编程课后习题答案及源代码

    总结优化Java编程的各种宝贵经验,深入阐述Java虚拟机执行Java程序的原理,从而使你更深入地理解Java语言的各种特性和语法规则。 本书贯穿了Sun公司的SCJP(Sun Certified Java Programmer)认证的考试要点,可作为...

    JAVA编程规则总结

    1,我不要自我重复: 这也许是在编程开发这最最基本的一个信条,就是要告诉你...一旦程序里开始有重复现象的出现(例如很长的表达式、一大堆的语句,但都是为了表达相同的概念),你就需要对代码进行一次新的提炼,抽象。

    ATM柜员机模拟程序 Java程序 论文附有完整代码

    JAVA程序:当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行(规则可以按照实际系统做需求):(1)查询余额:初始余额为10000元。(2)ATM取款:每次取款...

    java入门五子棋代码

    java编写五子棋的代码,成功运行。整体代码结构是,画棋盘,插背景,添响应事件,加逻辑规则,比较简单。 注意要改背景图片的相对路径!

    java斗地主发牌小程序

    java斗地主发牌小程序 牌的生成 随机洗牌 发牌 输出显示 代码只有几十行而已

    php-java+代码审计+代码审计软件seay+程序员+挖洞+代码审计漏洞查找+生成代码审计报告

    1.Seay源代码审计系统2.1 2.Seay源代码审计系统2.1源码 3.Seay源代码审计系统插件示例 4.代码审计资料整理

Global site tag (gtag.js) - Google Analytics