第一条:考虑用静态工厂方法代替构造器
优势:1,静态工厂方法有名称 ;
2,不必每次调用时候都创建一个新对象,避免创建不必要的重复对象;
3,可以返回原类型的任何子类型的对象;
4,在创建参数化类型实例的时候,它们使代码变得更加简洁。
缺点:
1,类如果不含公有或者受保护的构造器,就不对被子类化;
2,与其他的静态方法实际上没有任何区别。
第二条:遇到多个构造器参数时要考虑用构建器
优点:当参数多时比用 重载构造器容易写代码,同时比用JAVABEANS方法保证安全。
缺点:创建对象之前必须先创建构建器
第三条:用私有构造器或者枚举类型强化Singleton
使用私有构造器容易被反射攻击,如果使用静态方法,需要添加 readResolve方法来返回指定对象;作者 推荐使用枚举类型,不会被反射和序列化攻击所困扰。
Effective JAVA(中文)第二版学习笔记
最新推荐文章于 2022-11-05 18:17:03 发布