关闭

方法

129人阅读 评论(0) 收藏 举报
分类:

第三十八条:检查参数的有效性

  1. 在这个方法执行之前先对参数进行检查。

第三十九条:必要时进行保护性拷贝

  1. 对于构造器的每一个可变参数(指引用类型参数)进行保护性拷贝是必要的,防止其他对方改变值,从而避过这些参数需要满足的条件。
    public Period(Date start,Date end){
        this.start=new Date(start.getTime())
        this.end =new Date(end.getTime());

        if(this.start.compareTo(this.end)>0){
            throw new Exception("...");
        }
    }
  1. 保护性拷贝是在检查参数有效性之前进行的,并且有效性检查是针对拷贝之后的对象,而不是针对原始的对象。
  2. 对于参数类型可以被不信任方子类化的参数,请不要使用clone方法进行保护性拷贝,需要new一个新对象出来。
  3. 由于一个类的实例他的访问方法提供了对其可变内部成员的访问能力,意味可以改变内部成员的值,所以需要针对两个访问方法,如果信任调用者不会改变这些参数的值,也可以不进行保护性拷贝。
    public Date start(){
        return new Date(start.getTime());
    }

    //下同

第四十条:谨慎设计方法签名

  1. 谨慎地选择方法的名称.名称应遵循标准的命名习惯(见第56条)。首要目标是易于理解,并且与系统保持一致。如有疑问,请参考Java类库。
  2. 不要过于追求提供便利的方法。对于类和接口所支持的每个动作,都提供一个功能齐全的方法。
  3. 避免过长的参数列表。两种方法可以缩短过长的参数列表:

    (1). 把方法分解成多个方法。

    (2). 创建辅助类,用来保存参数的分组。一般为静态成员类,如果一个频繁出现的参数序列可以被看作是代表了某个独特的实体,建议使用该方法。
  4. 对于参数类型,要优先使用接口而不是类。
  5. 对于Boolean参数,要优先使用两个元素的枚举类型。
   Boolean.TRUE;Boolean.FALSE;   

第四十一条:慎用重载

  1. 永远不要导出两个具有相同参数数目的方法。

第四十二条:慎用可变参数

  1. 声明该方法带有两个参数,一个是指定类型的正常参数,另一个是这种类型的varargs参数
    public void min(int firstArg,int... othersArgs){
        ...
    }

第四十三条:返回零长度的数组或者集合,而不是null

  1. 返回类型为数组或者集合的方法没有理由返回null,而不是返回一个零长度的数组或者集合。可以使用Collection,emptySet、emptyList和emptyMap方法。

第四十四条:为所有导出的API元素编写文档注释

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:17255次
    • 积分:588
    • 等级:
    • 排名:千里之外
    • 原创:42篇
    • 转载:13篇
    • 译文:0篇
    • 评论:2条
    最新评论