Effective Java中文版(第二版)学习笔记(一)

来源:互联网 发布:飞蛾扑火算法 编辑:程序博客网 时间:2024/06/05 19:13

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

(1)优势一,他们都有名字

理解:构造就是类的名字,而方法呢就有很多名字可以选啦,根据不同的用途起不同的名字,大家调用起来见名知意,会很方便。

(2)优势二,不必每次调用它们的时候都创建一个新对象

理解:意思就是说在内存中保持一个对象,这样使得的内存会很干净,再也不用担心产生多余的对象了。

(3)优势三,它们可以返回原类型的任何子类型的对象

理解:使用构造方法那就只能产生这个类型的对象,例如: new Person()就只能是Person类型、new Student()就只能是Student类型,用静态工厂方法则可以按照你的需要返回子类型的对象,例如:getInstance(),在这个方法里面,按照你的需要来返回想要的类型;

(4)优势四,在创建参数化类型实例的时候,它们使代码变得更加简洁

理解:意思就是说例如我要创建一个实例,而这个实例是参数化的,

Map<String,List<String>> m = new HashMap<String,List<String>>();

你看红色部分你要写两遍,多么的麻烦啊,如果参数更多,会写的很长,很麻烦。用来静态工厂方法就很方便了

public static HashMap<k,v> newInstance()  {         return new HashMap<k,v>();}//然后调用的时候就很爽,如下Map<String,List<String>>  m = HashMap.newInstance();

少写了一次<String,List<String>>,方便一点是一点对吧!


0 0