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
- Effective Java中文版(第二版)学习笔记(一)
- Effective Java 中文版第二版的读书心得(一)
- Effective Java 学习笔记(一)
- effective Java 学习笔记 (一)
- effective Java 学习笔记 (一)
- Effective java 学习笔记(一)
- Effective Java 学习笔记(一)
- 《effective java》学习笔记(一)
- 《Effective STL》学习笔记(第二部分)
- 《Effective STL》学习笔记(第二部分)
- Effective Java 笔记(一)
- Effective Java 笔记(一)
- effective java 笔记(一)
- Effective Java笔记(一)
- 《Effective Java》笔记(一)
- Effective Java笔记(一)
- Effective Java笔记(第二章)
- Effective Java中文版(第2版)
- javascript的神奇闭包链和回调
- shell script 学习(四)条件判断式的使用:if..then ..fi和 case...esac语句
- ExtAspNet
- 机器学习的最佳入门学习资源
- dm
- Effective Java中文版(第二版)学习笔记(一)
- MKMapView小结
- adb shell 命令
- 使用quarze无法获取到数据库连接
- C++分割字符串
- 如何从oracle数据库的查询结果中,截取某个字段数据中含有“,”之前的数据
- 分享一个很实用的代码,可以将以逗号分隔的数字以从大到小的方式排序后返回
- 【LeetCode】Search a 2D Matrix && 【九度】题目1384:二维数组中的查找
- Golang linux下安装与配置