美文网首页
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