高效Java第四十条建议:谨慎设计方法签名

作用

有助于设计易于学习和使用的API。

如何做——谨慎地选择方法的名称

1.选择易于理解的,并且与同一个包中的其他名称风格一致的名称。

2.选择与大众认可的名称相一致的名称。

如何做——不要过于追求提供便利的方法

每个方法都应该尽其所能。

方法太多会使类难以学习、使用、文档化、测试和维护。

只有当一项操作被经常用到的时候,才考虑为它提供快捷方法。

如果不能肯定,还是不提供快捷方法为好。


如何做——避免过长的参数列表

目标是四个参数以内。

相同类型的长参数序列格外有害。


避免过长的参数列表——把方法分解成多个方法,每个方法只需要这些参数的一个子集

注意提升分解出的多个方法的正交性。

避免过长的参数列表——创建辅助类(helper class),用来保存参数的分组

如果一个频繁出现的参数序列可以被看作是代表了某个独特的实体,建议使用这种方法。

避免过长的参数列表——从对象构建到方法调用都采用Builder模式

如果方法带有多个参数,尤其是当它们中有些是可选的时候,最好定义一个对象来表示所有参数,并允许客户端在这个对象上进行多次“setter”调用,每次调用都设置一个参数,或者设置一个较小的相关的集合。

一旦设置了需要的参数,客户端就调用对象的“执行(execute)”方法,它对参数进行最终的有效性检查,并执行实际的计算。

其他建议

优先使用接口而不是类定义参数类型。

对于boolean参数,要优先使用两个元素的枚举类型。


Thermometer.newInstance(TemperatureScala.CELSIUS)比Thermometer.newInstance(true)更有用,而且支持在未来对TemperatureScala对进行扩展。

枚举是可以有方法的,有时候这个特性也非常有用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成,不包括返回值类型。 本条目是若干API设...
    HHJG阅读 4,028评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,609评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,188评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 14,047评论 6 13
  • 也许很多人会说感情怎么可以论价值呢,真正的感情都是无价的,怎么可以用“廉价”来形容它。可是二十一世纪的感情还不廉价...
    流箐c阅读 4,887评论 0 43

友情链接更多精彩内容