如果程序经常请求创建相同的对象, 并且创建对象的代价很高, 这项改动可以提升性能. (不可变类, 单例, 枚举).可以返回原类型的子类型对象....服务提供者框架(Service Provider Framework, 如JDBC)的基础, 让客户端与具体实现解耦....可以使用一些惯用的名称来弥补这一劣势:from: 类型转换方法.of: 聚集方法, 参数为多个, 返回的当前类型的实例包含了它们.valueOf: 类型转换方法, 返回的实例与参数具有相同的值.instance....通过做成抽象类来强制该类不可被实例化, 这是行不通的, 因为可能会造成"这个类是用来被继承的"的误解, 而继承它的子类又可以被实例化.所以只要让这个类包含一个私有的构造器, 它就不能被实例化了....在这种情况下, 子类就没有可访问的超类构造器可调用了.第5条 优先使用依赖注入而不是直接绑定资源对于其行为由底层资源参数化的类(比如SpellChecker, 底层资源是dictionary), 静态辅助类和单例都是不合适的实现方式