您的位置:首页 > 编程语言 > Java开发

Java编码规范,让你的代码赏心悦目--函数

2017-09-05 22:17 344 查看
短小

函数越短小越好!
if,else,while,它们中的代码最好只有一行!最好是一个函数调用
又因为函数名称具有说明意义,所以它们本质上又是一个不错的说明文档!

只做一件事

函数应该只做一件事情!
如何判断函数是否只做了一件事情:看该函数是否能再拆出一个函数,该函数不仅只是单纯地重新诠释其实现!

每个函数一个抽象层级

自顶向下读代码:向下规则

确保函数做一件事情的关键,就是函数中的语句要在同一抽象层级上。
程序就像是一系列TO开头的段落,每一段都描述当前抽象层级,并引用位于下一个抽象层级的后续TO起头段落。

switch语句
如果该语句只出现一次,那么最好是用来创建多态对象(也就是工厂模式),而且要隐藏在某个继承关系中。
当然,要视情况而定,灵活应用;

使用描述性名称
别害怕长名称。长而具有描述性的名称,要比描述性的长注释好很多;
命名方式要一致。使用与模块名一脉相承的短语,名词和动词给函数命名,如:

includeSetupAndTeardownPages

includeSetupPages

includeSuiteSetupPage

函数参数
最理想的参数数量是零,其次是一个,再次是两个,尽量避免使用三个,除非你有特殊的理由;
最好不要向函数传递布尔值;

参数对象
如果函数需要两个,三个甚至更多,那么是时候将它们封装成一个类了;

Circle makeCIrcle(double x,double y,double radius);

Circle makeCircle(Point center,double radius);

可变参数算一个参数;
函数和参数应当形成一种良好的动词/名词对形式

writeField(name),它告诉我们,"name"是一个"field"

尽量避免使用输出参数

分隔指令与询问
函数要么做什么事,要么回答什么事,二者不可兼得。

使用异常替代返回错误码
返回错误码就是要求调用者立刻处理错误





如果使用异常代替错误码,错误处理代码就能从主路径代码中分离出来,得到简化:



抽离try/catch代码块

最好把try和catch代码块的主体部分抽离出来,另外形成函数:



错误处理就是一件事
错误处理就是一件事。处理错误的函数不该做其他事。如果关键字try在某个函数中存在,它就该是这个函数的第一个单词,而且在catch/finally代码块后面也不该有其他内容;

Error.java依赖磁铁

返回错误码通常按时某处有个类或是枚举,定义了所有错误码



这样的类就是依赖磁铁;其他许多类都要导入和使用它。当它被修改时,所有使用它的类都要重新编译;
d1a6
使用异常替代错误码,新异常就可以从异常类派生出来,无需重新编译或重新部署;

别重复自己

结构化编程

每个函数,函数中的每个代码块都应该有一个入口,一个出口。这样就意味着每个函数只该有一个return,循环中不能有break或continue,永远不要有GOTO语句;
在短小的函数中,这条不太适用。只要保持函数短小,偶尔出现的return,break,continue没有坏处;

如何写出这样的函数?
不可能一蹴而就!
一开始都冗长而复杂;
完成之后,开始打磨,分解函数,修改名称,消除重复,或者拆散类。并保证它们测试通过
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  重构 编码 java