`
laorer
  • 浏览: 433733 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

<转>JAVA 编程规范

    博客分类:
  • j2EE
阅读更多
 
  http://tb.blog.csdn.net/TrackBack.aspx?PostId=176737

1. 应用范围<o:p></o:p>

本规范应用于采用J2EE规范的项目中,所有项目中的JAVA代码(含JSPSERVLETJAVABEANEJB)均应遵守这个规范。同时,也可作为其它项目的参考。<o:p></o:p>

<o:p> </o:p>

2. 设计类和方法<o:p></o:p>

2.1     创建具有很强内聚力的类<o:p></o:p>

方法的重要性往往比类的重要性更容易理解,方法是指执行一个统一函数的一段代码。类常被错误的视为是一个仅仅用于存放方法的容器。有些开发人员甚至把这种思路作了进一步的发挥,将他们的所有方法放入单个类之中。<o:p></o:p>

之所以不能正确的认识类的功能,原因之一是类的实现实际上并不影响程序的执行。当一个工程被编译时,如果所有方法都放在单个类中或者放在几十个类中,这没有任何关系。虽然类的数量对代码的执行并无太大的影响,但是当创建便于调试和维护的代码时,类的数量有时会带来很大的影响。<o:p></o:p>

类应该用来将相关的方法组织在一起。<o:p></o:p>

当类包含一组紧密关联的方法时,该类可以说具有强大的内聚力。当类包含许多互不相关的方法时,该类便具有较弱的内聚力。应该努力创建内聚力比较强的类。<o:p></o:p>

大多数工程都包含许多并不十分适合与其他方法组合在一起的方法。在这种情况下,可以为这些不合群的方法创建一个综合性收容类。<o:p></o:p>

创建类时,应知道模块化这个术语的含义是什么。类的基本目的是创建相当独立的程序单元。<o:p></o:p>

2.2     创建松散连接和高度专用的方法<o:p></o:p>

1.       使所有方法都执行专门的任务 <o:p></o:p>

每个方法都应执行一项特定的任务,它应出色的完成这项任务。应避免创建执行许多不同任务的方法。<o:p></o:p>

创建专用方法有许多好处。首先调试将变得更加容易。<o:p></o:p>

<o:p> </o:p>

2.       尽量使方法成为自成一体的独立方法 <o:p></o:p>

当一个方法依赖于其他方法的调用时,称为与其他方法紧密连接的方法。紧密连接的方法会使调试和修改变得比较困难,因为它牵涉到更多的因素。松散连接的方法优于紧密连接的方法,但你不可能使每个方法都成为独立的方法。<o:p></o:p>

若要使方法具备较强的独立性,方法之一是尽量减少类变量。<o:p></o:p>

创建方法时,设法将每个方法视为一个黑箱,其他例程不应要求了解该方法的内部工作情况,该方法也不应要求了解它外面的工程情况。这就是为什么你的方法应依靠参数而不应依靠全局变量的原因。<o:p></o:p>

创建专用方法时,请考虑下列指导原则:<o:p></o:p>

1)    将复杂进程放入专用方法。如果应用程序使用复杂的数学公式,请考虑将每个公式放入它自己的方法中。这样使用这些公式的其他方法就不包含用于该公式的实际代码。这样也可以更容易发现与公式相关的问题。 <o:p></o:p>

2)    将数据输入/输出(I/O)放入专用方法。 <o:p></o:p>

3)    将专用方法中可能要修改的代码隔离。如果你知道某个进程经常变更,请将这个多变的代码放入专用方法,以便以后可以更容易的进行修改,并减少无意中给其他进程带来问题的可能性。 <o:p></o:p>

4)    将业务规则封装在专用方法中。业务规则常属于要修改的代码类别,应与应用程序的其余部分隔开。其他方法不应知道业务规则,只有要调用的方法才使用这些规则。 <o:p></o:p>

<o:p> </o:p>

3.       设计类和方法时,要达到下列目的: <o:p></o:p>

1)    创建更加容易调试和维护的方法<o:p></o:p>

2)    创建具有强大内聚力的类<o:p></o:p>

3)    创建高度专用的方法<o:p></o:p>

4)    创建松散连接的方法<o:p></o:p>

5)    尽量使方法具有独立性<o:p></o:p>

6)    提高方法的扇入性<o:p></o:p>

7)    降低方法的扇出性<o:p></o:p>

<o:p> </o:p>

2.3     编程原则<o:p></o:p>

1.       为方法和类赋予表义性强的名字 <o:p></o:p>

为了使代码更加容易理解,最容易的方法之一是为你的方法赋予表义性强的名字。函数名DoItGetIt的可读性很难与CalculateSalesTax RetrieveUserID相比。<o:p></o:p>

由缩写方法名组成的代码很难理解和维护,没有理由再这样做了。<o:p></o:p>

给方法正确的命名,可使程序工程的调试和维护工作大大的改观。请认真对待方法命名的工作,不要为了减少键入操作量而降低方法的可理解度。<o:p></o:p>

实际应用举例:<o:p></o:p>

1)    给方法命名时应大小写字母混合使用。如果句子全使用大写字母,那么阅读起来就非常困难,而大小写字母混合使用的句子,阅读起来就很容易。 <o:p></o:p>

2)    定义方法名时不要使用缩写。如果你认为应用程序中的某些工程应使用缩写,那么请将这些情况加上注释,并确保每个人在所有时间内都使用这些缩写。决不要在某些方法中对某些单词进行缩写,而在别的方法中却不使用缩写。 <o:p></o:p>

<o:p> </o:p>

2.       为每个方法赋予单个退出点<o:p></o:p>

<o:p> </o:p>

3.       创建方法时,始终都应显式地定义它的作用域。 <o:p></o:p>

1)    如果你真的想创建一个公用方法,请向代码阅读者说明这一点。<o:p></o:p>

2)    通过为每个方法赋予一个明确定义的作用域,可以减少代码阅读者需要投入的工作量。应确保你为方法赋予最有意义的作用域。如果一个方法只被同一类中的另一个方法调用,那么请将它创建成私有方法。如果该方法是从多个类中的多个方法中调用,请将该说明为公用方法。<o:p></o:p>

<o:p> </o:p>

4.       用参数在方法之间传递数据<o:p></o:p>

应尽量避免使用类变量。一般来说,变量的作用域越小越好。为了减少类变量,方法之一是将数据作为参数在不同方法之间传递,而不是让方法共享类变量。<o:p></o:p>

1)    为每个参数指定数据类型。 <o:p></o:p>

2)    始终要对数进行检验,决不要假设你得数据没有问题。程序员常犯的一个错误是在编写方法时假设数据没有问题。在初始编程阶段,当编写调用方法时,这样的假设并无大碍。这时你完全能够知道什么是参数的许可值,并按要求提供这些值。但如果你不对参数的数据进行检验,那么下列情况就会给你带来很大麻烦:另外某个人创建了一个调用方法,但此人不知道允许的值;你在晚些时候添加了新的调用方法,并错误的传递了坏数据。 <o:p></o:p>

<o:p> </o:p>

3. 命名约定<o:p></o:p>

所有变量的定义应该遵循匈牙利命名法,它使用3字符前缀来表示数据类型,3个字符的前缀必须小写,前缀后面是由表意性强的一个单词或多个单词组成的名字,而且每个单词的首写字母大写,其它字母小写,这样保证了对变量名能够进行正确的断句。<o:p></o:p>

这样,在一个变量名就可以反映出变量类型和变量所存储的值的意义两方面内容,这使得代码语句可读性强、更加容易理解。<o:p></o:p>

<o:p> </o:p>

3.1     包、类及方法命名<o:p></o:p>

<o:p> </o:p>

标示符类型<o:p></o:p>

命名约定<o:p></o:p>

例子<o:p></o:p>

<o:p></o:p>

l 全部小写。<o:p></o:p>

l  标识符用点号分隔开来。为了使包的名字更易读,Sun 公司建议包名中的标识符用点号来分隔。<o:p></o:p>

l  Sun 公司的标准 java 分配包用标识符 .java 开头。<o:p></o:p>

l 全局包的名字用你的机构的 Internet 保留域名开头 <o:p></o:p>

局部包<o:p></o:p>

interface.screens<o:p></o:p>

全局包<o:p></o:p>

com.rational.www. interface.screens<o:p></o:p>

类,接口<o:p></o:p>

l 类的名字应该使用名词。<o:p></o:p>

l 每个单词第一个字母应该大写。<o:p></o:p>

l  避免使用单词的缩写,除非它的缩写已经广为人知,如HTTP<o:p></o:p>

Class Hello ;<o:p></o:p>

Class HelloWorld ;<o:p></o:p>

Interface Apple ;<o:p></o:p>

方法<o:p></o:p>

l 第一个单词一般是动词。<o:p></o:p>

l  第一个字母是小些,但是中间单词的第一个字母是大写。<o:p></o:p>

l 如果方法返回一个成员变量的值,方法名一般为get+成员变量名,如若返回的值是bool变量,一般以is作为前缀。<o:p></o:p>

l 如果方法修改一个成员变量的值,方法名一般为:set + 成员变量名。<o:p></o:p>

<o:p> </o:p>

getName();<o:p></o:p>

分享到:
评论

相关推荐

    Java数据编程指南

    Java和ODMG 3.0规范&lt;br&gt;基础&lt;br&gt;ODMG的核心概念&lt;br&gt;对象定义语言&lt;br&gt;小结&lt;br&gt;第11章 目录服务与JNDI&lt;br&gt;命名与目录服务&lt;br&gt;使用JNDI&lt;br&gt;JAVA与LDAP&lt;br&gt;从理论到实践&lt;br&gt;标准的LDAP操作&lt;br&gt;LDAP服务器改进&lt;br&gt;在LDAP...

    Java JDK实例宝典

    &lt;br&gt;第1章 Java基础 &lt;br&gt;1.1 转换基本数据类型 &lt;br&gt;1.2 Java的运算符 &lt;br&gt;1.3 控制程序的流程 &lt;br&gt;1.4 计算阶乘 &lt;br&gt;1.5 实现命令行程序 &lt;br&gt;第2章 Java面向对象程序设计 &lt;br&gt;2. 1 复数类 &lt;br&gt;2. 2 equals.chashCode...

    JSP訳文--工具--Java

    &lt;br&gt;UltraEdit 7.2&lt;br&gt;WebGain Studio 4 with VisualCafe&lt;br&gt;Forte for Java...规范&lt;br&gt;Java 在Client/Server 网络中的应用&lt;br&gt;Java 编程技术中汉字问题的分析及解决&lt;br&gt;利用JAVA语言实现支持视频点播的WEB服务器&lt;br&gt;用...

    软件开发过程文档

    &lt;br&gt;测试用例编写规范.doc&lt;br&gt;概要设计说明书编写规范.doc&lt;br&gt;计算机源代码编写规范.doc&lt;br&gt;开发大纲.doc&lt;br&gt;配置管理规范.doc&lt;br&gt;配置管理...&lt;br&gt;JAVA编码规约.doc&lt;br&gt;VC编码规约.doc&lt;br&gt;具体语言的编程规范.rar

    AIC的Java课程1-6章

    &lt;br&gt; 课程目标&lt;br&gt; 认识Java平台,了解java application和applet的开发,激发学员对Java编程语言的兴趣。&lt;br&gt; 学习和掌握Java变量,运算符,控制结构,数组,方法等基本语法。&lt;br&gt; 培养和建立面向对象编程...

    <好书>java解惑(java puzzlers),过来挑战吧

    这本书通过一系列精心设计的“Java谜题”,引导读者深入理解Java语言的内在机制和规范,增强对语言特性的掌握。 在书中,作者会提出一些看似简单但实际上可能引发错误的代码示例,这些示例被称为“puzzlers”。每个...

    <转>两个编码规范

    在这个场景中,提到的两个编码规范很可能是针对Java语言的,因为压缩包内包含了名为“Java 编码规范-chm.chm”和“JAVA编码规范.chm”的文件,它们很可能包含了详细的Java编程规范文档。 编码规范是软件开发中的...

    List<Bean>转JasonStringer

    在Java编程中,将`List&lt;Bean&gt;`转换成`JsonString`是一项常见的任务,尤其是在处理数据交换或存储时。这个过程通常涉及到对象序列化,即将Java对象转换为JSON格式的字符串,以便在网络间传输或者存储在文件中。下面将...

    JAVA编程规范.pdf

    JAVA编程规范.pdf 本文档提供了JAVA编程规范的详细说明,涵盖了类和方法的设计、编程原则、命名约定等方面的内容。 类和方法的设计 在设计类和方法时,需要遵守一些基本原则。首先,类应该具有强大的内聚力,即类...

    JAVA网络编程:第1章 课程介绍.ppt

    HTML文档由全局架构标签如&lt;html&gt;、&lt;head&gt;、&lt;title&gt;和&lt;body&gt;构建,还包括各种其他标签,如文本标签&lt;h1&gt;到&lt;h6&gt;、&lt;b&gt;、&lt;i&gt;,超链接标签&lt;a&gt;,图像标签&lt;img&gt;,表格标签&lt;table&gt;、&lt;tr&gt;、&lt;td&gt;、&lt;th&gt;,以及表单元素&lt;form&gt;、...

    jersey 1.17+spring 3.1.0.RELEASE+hibernate 3.3.1.GA maven 配置文

    Jersey是实现Java API for RESTful Web Services (JAX-RS)规范的开源框架。它允许开发者轻松创建和部署RESTful服务。在1.17版本中,Jersey提供了一套全面的工具和服务,包括注解处理、过滤器、异常处理等,使得构建...

    华为JAVA编程规范汇编.pdf

    华为JAVA编程规范汇编.pdf

    java编程规范 java编程规范

    《Java编程规范详解》 在软件开发领域,编码规范是一种约定俗成的规则,旨在提升代码的可读性、可维护性和团队协作效率。Java编程规范是Java开发者遵循的重要指导原则,它涵盖了文件命名、文件组织、代码结构、缩进...

    Java编程规范.pdf

    Java编程规范 Java编程规范是Java程序员在编写代码时需要遵循的一些约定俗成的命名规定,旨在提高Java程序的可读性和维护性。这些规范包括了包命名规范、类命名规范、接口命名规范、方法命名规范、变量命名规范和...

    华为JAVA编程规范、编程军规

    以上只是部分基于华为JAVA编程规范的知识点,具体细节需要参考《JAVA编程军规.doc》《JAVA十大低级错误.doc》《华为_Java编程规范.pdf》《华为JAVA编程规范.doc》等文档。这些规范旨在提升代码质量和团队协作效率,...

    C、Java和Python的BNF范式

    &lt;function-definition&gt; ::= &lt;declaration-specifiers&gt; &lt;declarator&gt; &lt;compound-statement&gt; &lt;compound-statement&gt; ::= { &lt;declaration&gt;* &lt;statement&gt;* } ``` 接着,我们转向Java。Java作为面向对象的语言,其BNF范式...

    java编程规范编程原则

    ### Java编程规范与基本原则 #### 一、引言 Java作为一种广泛应用的编程语言,其代码的质量不仅直接影响到软件系统的稳定性与可维护性,而且对于团队协作有着不可忽视的影响。因此,建立一套统一且高效的编程规范...

Global site tag (gtag.js) - Google Analytics