1、 使用可以准确说明变量/字段/类/接口/包等的完整的英文描述符。例如,采用类似firstName,listAllUsers 或CorporateCustomer 这样的名字,尽量不使用汉语拼音及不相关单词命名,严禁使用汉语拼音首字母组合命名,虽然Java 支持Unicode 命名,但本规范规定对包、类、接口、方法、变量、字段等不得使用汉字等进行命名。 采用该领域的术语。如果用户称他们的“客户” (clients) 为“顾客”(customers),那么就采用术语Customer 来命名这个类,而不用Client。 采用大小写混合,提高名字的可读性。一般应该采用小写字母,但是类和接口的名字的首字
2、母,以及任何中间单词的首字母应该大写。包名全部小写。 避免使用长名字(最好不超过25 个字母)。 避免使用相似或者仅在大小写上有区别的名字。 避免使用数字,但可用2 代替to,用4 代替for 等,如:go2Jsp。2.1 包命名包名一般以项目或模块名命名,少用缩写和长名,一律小写,正则表达式为:a-z+(.a-zA-Z_a-zA-Z0-9_*)*$。包名按如下规则组成:基本包.项目名.模块名.子模块名.例如:OA项目的包命名前三级为:com.well.oa。不得将类直接定义在基本包下,所有项目中的类、接口等都当定义在各自的项目和模块包中。2.2 类命名类名采用大小写混合的方式,每个单词的首字
3、母大写。尽量使你的类名简洁而富于描述。使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像URL,HTML)。一般采用名词。2.3 接口命名大小写规则与类名相似。接口可带I 前缀或able、ible、er 等后缀。2.4 方法命名方法名是一个动名结构,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。正则表达式为:a-za-zA-Z0-9*$类中常用方法的命名:1. 类的获取方法(一般具有返回值)一般要求在被访问的字段名前加上get,如getFirstName(),getLastName()。2. 类的设置方法(一般返回类型为void):被访问字段名的前面加上前缀 set,
4、如setFirstName(),setLastName().3. 类的布尔型的判断方法一般要求方法名使用单词 is 做前缀,如isPersistent()isString()。或者使用具有逻辑意义的单词,例如equal 或equals。4. 类的普通方法一般采用完整的英文描述说明成员方法功能,第一个单词尽可能采用动词,首字母小写,如openFile(),addCount()。5. 构造方法应该用递增的方式写。(参数多的写在后面)。6. toString()方法:一般情况下,每个类都应该定义toString(),其格式为:public String toString()。2.5 类成员 参数和类
5、命名一样,但是首字母小写。参数命名和类成员命名一致。a-za-zA-Z0-9*$2.6 局部变量 局部变量名不应以下划线或美元符号开头,这个是java命名的惯例。局部变量建议全部使用小写。除了局部变量名外,所有实例,包括类,类常量,均采用大小写混合的方式。变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避免单个字符的变量名,除非是一次性的临时变量(往往用在for循环中),临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型。a-za-z0-9*$2.7 常量类常量和ANSI常量(static , final 字段)的声明,应该全部大
6、写,单词间用下划线隔开。(尽量避免ANSI常量,容易引起错误)。A-ZA-Z0-9*(_A-Z0-9+)*$2.8 集合集合,例如数组和列表,命名应采用完整的英文描述符,适当使用集合缩写后缀。如:List productList = new List(); /产品列表Array userArray = new Array(); /用户列表2.9 魔法数字不允许使用魔法数字,可以定义为常量使用。在程序里经常会用到一些量,它是有特定的含义的。例如,现在我们写一个薪金统计程序,公司员工有50 人,我们在程序里就会用50 这个数去进行各种各样的运算。在这里,50 就是神秘的数。当别的程序员在程序里看到
7、50 这个数,将很难知道它的含义,造成理解上的困难。在程序里出现会降低程序的可读性、可维护性和可扩展性,故规定不得出现此类魔法数字避免的方法是把神秘的数定义为一个常量。注意这个常量的命名应该能表达该数的意义,并且应该全部大写,以与对应于变量的标识符区别开来。例如上面50 这个数,我们可以定义为一个名为NUM_OF_EMPLOYEES 的常量来代替。这样,别的程序员在读程序的时候就可以容易理解了。2.10 其他命名时应使用复数来表示它们代表多值(数组)。orderItems。2.11 项目分层1、 实体类实体类使用规范1.表名以所在模块的简写为前缀;2.实休类只作为一个JavaBean对象3.类
8、的字段不可使用int、short、long、char、double、float、boolean和byte等基本数据类型,要使用基本数据类型对应的包装类Integer、Short、Long、Character、Double、Float、Boolean和Byte等可用工具类com.wellsoft.pt.utils.bean.PrimitiveTypeWrapperUtils对其属性赋初始值2、 DAO数据访问DAO层实现类命名规范以Dao结束,如UserDao3、 Service服务Service服务层接口命名规范以Service结束,如UserService实现类命名规范以ServiceImp
9、l结束,如UserServiceImpl4、 控制器层控件器命名规范以Controller结束,如UserController5、 JSP页面展示jsp文件命名规范统一使用小写字母,若有多个单词用下划线_分开,一般以动词结束,如user_list.jsp 列表user_view.jsp 查看user_edit.jsp 编辑user_maintain.jsp 维护user_new.jsp 新增6、 值对象数据从页面收集到后台控制器的值对象命名规范1、值对象以Bean为结尾,如UserBean,收集后再用工具类com.wellsoft.pt.utils.bean.BeanUtils转换为实体类Us
10、er2、直接使用实体类如User作为值对象收集页面数据3. 代码排版规范排版主要为了界面规范,一方面为了代码清晰,另外可以方便进行代码合并时减少因排版引起不一致。在eclipse中可以使用固定排版模板,完成一致的排版样式。所有项目开发人员必须引入统一的排版模板。主要包括缩进,空格,空行,大括号,换行,长度等方面。3.1 空行空行往往使用在如下方面。1) 包的声明之后2) Import声明之前和之后3) Import组之间4) 类声明之间5) 类成员变量和方法声明之前6) 在同一类型声明之前7) 对于已存在的空行会整理成一行对于特别需要分开的行也可以添加空行,往往是为了逻辑划分。3.2 空格1)
11、 逗号后面一律加空格2) 类和匿名类的左大括号之前加空格3) 方法和构造函数的左大括号之前加空格4) 可变个数的参数的冒号后面加空格void format(String s, Object. args) 5) 标识符(label)后面的冒号后要加空格,目前不推荐使用标识符:6) 注释类型前面和左大括号之前加空格。3.3 大括号(Braces)1) 左大括号一律与它所从属的类,接口和关键字处于同一行2) 左大括号一律与它所从属的方法和构造函数处于同一行3) 左大括号一律与它所从属的枚举声明和枚举常量处于同一行4) 左大括号一律与它所从属的注释类型声明处于同一行5) 数组初始化中左大括号一律与声明
12、处于同一行:6) 所有区域都要使用大括号,例如 if语句中只有一条语句也要用大括号括起来。3.4 换行(New Lines)1) 局域变量(local variables)和成员不与其注释在同一行,不许使用与代码同行的注释,注释往往放在其注释内容上。2) 一行最长为120个字符。3) 同一行不能有多个声明,声明放置到新行中3.5 长度(Length)1) 文件长度不超过1000行,建议。2) 方法长度不超过200行,建议。4. 声明声明的基本原则是遵守Java 语言规范,并遵从习惯用法。4.1 类、接口声明定义:可见性(abstract|final) Class|Interface class
13、_name(extendsimplements)父类或接口名public class LoginAction extends BaseAction implemnets ActionListener方法良好的程序设计应该尽可能减小类与类之间耦合,所遵循的经验法则是:尽量限制成员函数的可见性。如果成员函数没必要公有(public),就定义为保护(protected);没必要保护。4.2 方法) synchronized返回值类型 method_name(参数列表)(throws)异常列表public List listAllUsers() throws DAOException若有toString(),equals(),hashCode(),colone()等重载自Obje
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1