Effective Java - 谨慎设计方法签名

第51条 谨慎设计方法签名

  1. 谨慎选择方法名
  2. 避免过长的参数列表。有三种方法可以缩短参数列表
    • 分解方法
    • 创建辅助类保存参数
    • 从对象的构建到方法的调用都采用Builder模式
  3. 参数类型优先使用接口而不是类
  4. 对于boolean参数,要优先使用两个元素的枚举类型

思考

  1. 取名是编程最难的事情,现在对于比较复杂的事情,一个简单的方法名很难去概括的时候,我就会在方法上写一个doc,把具体做了什么怎么做的写清楚
  2. 缩短参数列表的3个方法。
    • 分解方法感觉不会有太大的作用,而且复杂度比较高。重点是分解了之后还是需要组合方法实现功能的,最后还是需要这么多参数
    • 把参数组装成一个vo是目前比较常用的方法
    • Builder的本质还是一个创建vo的过程。书里的意思应该就是把Builder模式最后的build方法替换成了本来要调用的那个方法。这样的话其实具体的实现还是要组装出来一个vo再调用,不然还是一长串的参数列表
    • 对于boolean参数我一直不是很喜欢,Clean Code也说过,不要写只有boolean参数的方法,要变成两个不同的方法。我一般如果出现了两态的情况,除非特别肯定的不会出三态,比如validate和without validate,都会使用枚举来区分。不然扩充两态到三态是一个极其复杂且很容易漏改的事情

你可能感兴趣的:(Effective Java - 谨慎设计方法签名)