美文网首页
Effective Java 笔记

Effective Java 笔记

作者: 拾壹北 | 来源:发表于2017-04-08 22:43 被阅读38次

    2017-04-08

    基本原则

    • 清晰性和简洁性最为重要:模块(指可重用的软件组件,从单个方法到包含多个包的复杂系统,都可以是一个模块)的用户永远也不应该被模块的行为所迷惑(那样就不清晰了);模块尽可能小,但又不能太小;代码应该被重用而不是被拷贝,模块之间的依赖性应该尽可能降到最小。

    • 错误应该尽早被检测出来,最好是在编译阶段。

    第1条:考虑用静态工厂方法代替构造器

    考虑用静态工厂方法返回类的实例,例如:

    public static Boolean valueOf(boolean b) {
      return b ? Boolean.TRUE : Boolean.FALSE;
    }
    

    这样做的优势在于:

    1、静态工厂方法具有有意义的名字,见名知意:

    如:BigInteger.probablePrime方法得到可能为素数

    2、不必在每次调用时都创建新的对象:

    这使得不可变类可以被预先创建、避免创建不必要的重复类

    3、子类化:可以返回原返回类型的任何子类对象

    这种技术适用于基于接口的框架,例如Guava集合接口对集合、同步集合的便利实现;静态工厂方法返回对象所属的类,在编写包含该静态工厂方法的类时可以不必存在,这种灵活的静态工厂方法构成了服务提供者框架。

    4、在创建参数化类型实例的时候,他们使代码更加简洁

    第2条:遇到多个构造器参数时考虑用构建器(Builder)


    第3条:用私有构造器或者枚举类型强化Singleton属性


    第4条:通过私有构造器强化不可实例化的能力


    第5条:避免创建不必要的对象


    第6条:消除过期的对象引用


    第7条:避免使用终结方法(finalizer)


    第8条:覆盖equals是请遵守通用约定


    第9条:覆盖equals是总要覆盖hashcode


    第10条:始终要覆盖toString


    第11条:谨慎的覆盖clone


    第12条:考虑实现Comparable接口

    相关文章

      网友评论

          本文标题:Effective Java 笔记

          本文链接:https://www.haomeiwen.com/subject/vqerattx.html