1、修饰符
java中的方法,有四种修饰符:public/propeted/private/默认修饰符。在设计方法时,修饰符应该采用哪个呢?我在阿里巴巴开发规范中看到这么一句话:"我们的方法,要尽量设计成私有的"。为什么要设计私有的,阿里巴巴规范是这么描述的:“难道你不希望自己的小孩能一直出现在自己视野中,而不是到处乱跑吗”,原话可能有差异。但大概意思就是这个,当时我读到这句话,我感觉很新颖、很生动形象。我们写的方法,就是我们的孩子,我们的视野指代当前类。所以如果方法没有必要让别人调用,就把它弄成私有的吧,这样安全。例如:当你要删除某个非私有的方法时,如果方法不是私有的,“你难带不会手心出点汗吗”---阿里巴巴规范。是啊,万一很多地方都调用了那个方法,岂不是炸了吗?所以,如果感觉自己的方法没有必要让别人调用,就弄成私有的吧。就像自己的小孩,没有必要的事。就让他呆在自己的视野范围里活动就好了,安全。但是并不是所有方法都要设计为私有的,有的方法还是需要提供给别人调用的。但是又不是给所有人调用,只想给自己的子类调用。那么此时,propeted发挥作用了。将方法修饰为propeted的,就只有子类能调用了。
2、返回值
关于方法返回值,没有太多可说的。但我个人的设计原则是,能不要返回值的,则返回类型就设计成void。
3、参数
一个方法的参数,我个人感觉没有是最好的,最多不要超过四个。超过四个,必须要进行封装,通过对象引用的方式进行参数传递。当然我们写的业务方法,要说没有参数,是不切实际的。业务方法嘛,你总要给它一些东西,然后它才能处理。虽然业务方法一般情况下会有参数,且有可能超过四个,但是我们能控制传方法参数列表的个数。就比如说,一个新增方法。前端很有可能传递二三十个参数给controller层的方法。这么多参数,总不能全部堆积在方法参数列表里吧?那怎么办?此时可以封装呀,将所有的参数封装到一个pojo实体类中。然后再将实体类的引用作为参数传递给方法,在方法里通过引用获取到数据。这样就大大减少方法参数列表的参数个数,使得方法从排版上看更加舒服,从可读性上看更加容易理解。
4、抛出异常
异常,我个人从两个维度去分类。第一:业务异常。第二:非业务异常。什么是业务异常?例如说:查询学生所有学科的成绩,再计算出其平均成绩,如果成绩优秀,则发短信通知学生家长。假如用户给了一个错误的学生编号,那么查询结果必定为null。此时计算学生平均成绩、及发短信的操作就无从谈起。那么此时,我们是该return,还是throw一个业务异常呢?答案是throw一个业务异常,那么代码即可从throw那行代码开始不再往下执行。这就是我们想要的效果(因为数据不对,代码没有必要再往下执行了)。这个效果return语句也能做到,只是return需要搭配if语句才能实现throw一样的效果,所以一定要善用throw关键字,让它发挥出巨大的威力。