Effective Java重点笔记--第一条 考虑使用静态工厂
作者:
DX5 | 来源:发表于
2016-08-30 14:34 被阅读0次
- 静态工厂方法定义:
返回类实例的静态方法,与设计模式中的工厂方法模式不同。
- 优点:
-
静态工厂方法有名称。我们可以通过不同的名称来区分参数列表不同的构造器,这样显然更加的清楚,便于用户理解。
-
不必在每次调用时创建一个新的对象。重复利用对象,避免重复创建相同的对象,提升性能。
-
可以返回类型的任何子类型的对象。我们在选择返回对象的类型时,有了更大的灵活性。适用于基于接口的的框架。
-
使代码变得更加简介。如:
<code>Map<String,List<String>> m=new HashMap<String,List<String>>();
//可更换为
Map<String,List<String>> m=HashMap.newInstance();</code>
- 缺点:
1.** 一个类如果不含有public或者protect的构造器,就不能被子类继承。**
2.静态工厂方法与普通静态方法没有任何区别,在API文档中不会被明确标识出来。所以在查询使用静态工厂方法创建实例对象时,会十分困难。
- 静态工厂方法的管用名称:
-
ValueOf——类型转换方法,返回与参数具有相同值的实例。
-
of——同上
-
getInstance——返回通过参数描述的实例,对Singleton来说,永远返回唯一的实例。
-
newInstance——确保返回的每个实例都与其他实例不同
-
getType——像getInstance一样,但是在工厂方法处于不同的类中的时候使用。
-
newType——像newInstance一样,但是在工厂方法处于不同的类中的时候使用。
本文标题:Effective Java重点笔记--第一条 考虑使用静态工厂
本文链接:https://www.haomeiwen.com/subject/dgvfettx.html
网友评论