代码规范(七)

7 编程技巧
7.1 一般性原则
7.1.1 检查所有参数输入的有效性。
7.1.2 检查参数输入
检查所有非参数输入的有效性,如数据文件、公共变量等。

说明:输入主要有两种:一种是参数输入;另一种是全局变量、数据文件的输入,即非参数输入。在使用输入之前,应进行必要的检查。

7.1.3 类名应准确描述类的功能。
7.1.4 避免强制返回值类型
除非必要,最好不要把与返回值类型不同的变量,以编译系统默认的转换方式或强制的转换方式作为返回值返回。

7.1.5 让调用点显得易懂、容易理解。
7.1.6 减少数据类型转换
在填写参数时,应尽量减少没有必要的默认数据类型转换或强制数据类型转换。

说明:因为数据类型转换或多或少存在危险。

7.1.7 防止程序中的垃圾代码。
说明:程序中的垃圾代码不仅占用额外的空间,而且还常常影响程序的功能与性能,很可能给程序的测试、维护等造成不必要的麻烦。

7.1.8 减少递归调用。
说明:递归调用影响程序的可理解性;递归调用一般都占用较多的系统资源(如栈空间);递归调用对程序的测试有一定影响。故除非为某些算法或功能的实现方便,应减少没必要的递归调用。

7.1.9 使用数据流图
仔细分析模块的功能及性能需求,并进一步细分,同时若有必要画出有关数据流图。

说明:根据模块的功能图或/及数据流图映射出结构是常用方法之一。

7.1.10 避免使用BOOL参数。
说明:原因有二,其一是BOOL参数值无意义,TURE/FALSE的含义是非常模糊的,在调用时很难知道该参数到底传达的是什么意思;其二是BOOL参数值不利于扩充。还有NULL也是一个无意义的单词。

7.2 开发过程中的技巧
7.2.1 byte 数组转换到 characters
为了将 byte 数组转换到 characters,你可以这么做:

"Hello world!".getBytes();

7.2.2 Utility 类
Utility 类(仅仅提供方法的类)应该被申明为抽象的来防止被继承或被初始化。

7.2.3 初始化数组
下面的代码是一种很好的初始化数组的方法:

objectArguments = new Object[] { arguments };

7.2.4 枚举类型
JAVA 对枚举的支持不好,但是下面的代码是一种很有用的模板:

复制代码
1 class Colour {
2     public static final Colour BLACK = new Colour(0, 0, 0);
3     public static final Colour RED = new Colour(0xFF, 0, 0);
4     public static final Colour GREEN = new Colour(0, 0xFF, 0);
5     public static final Colour BLUE = new Colour(0, 0, 0xFF);
6     public static final Colour WHITE = new Colour(0xFF, 0xFF, 0xFF); 
7 }
复制代码

这种技术实现了RED, GREEN, BLUE 等可以象其他语言的枚举类型一样使用的常量。 他们可以用 == 操作符来比较。
但是这样使用有一个缺陷:如果一个用户用这样的方法来创建颜色 BLACK

new Colour(0,0,0) ,那么这就是另外一个对象。==操作符就会产生错误。她的 equal() 方法仍然有效。由于这个原因,这个技术的缺陷最好注明在文档中,或者只在自己的包中使用。

原文地址:https://www.cnblogs.com/9635741zly/p/14916495.html