第40条:谨慎设计方法签名
1.谨慎地选择方法的名称。 遵循标准的命名习惯。
2.不过于追求提供便利的方法。 方法太多会使类难以学习、使用、文档化、测试和维护。
3.避免过长的参数列表。 目标是四个参数以下。
缩短参数列表的方法:
(1)把方法分解成多个方法,可能会导致方法过多, 通过提升方法正交性,可以减少方法数目。java.util.List接口,它没有提供在子列表中查找元素第一个索引和最后一个索引的方法,这个两个方法需要三个参数,它提供了subList方法,需要两个参数,还有indexOf和lastIndexOf方法,需要一个参数。而且subList方法可以与其他针对List实例进行操作的方法结合起来,在子列表上执行任意的计算,这样得到的API具有很高的功能重量比。
(2)创建辅助类,用来保存参数的分组,一般是静态成员类。
(3)采用Builder模式,如果方法带多个参数,尤其是有些是可选的时候,定义一个对象表示所有参数,并允许客户端在对象上进行多次setter调用,每次调用设置一个参数,一旦设置了需要的参数,调用执行方法。
4.对于参数类型,要优先使用接口而不是类。 只要有适当的接口可用来定义参数,就优先使用这个接口,而不是使用实现该接口的类。
5.对于boolean参数,要优先使用两个元素的枚举类型,使代码更容易阅读和编写。 它使代码更易于阅读和编写,尤其当你在使用支持自动完成功能的IDE的时候。