读书笔记1(Effective java)
来源:互联网 发布:设计印章的软件 编辑:程序博客网 时间:2024/06/07 09:22
创建和销毁对象
------------《考虑用静态工厂方法代替构造器》
优势:
1.有名称。
2.避免了每次调用他们都创建一个新的对象。
例子:
public static Boolean valueOf(boolean b) { return (b ? TRUE : FALSE); }
3.可以返回原类型的任何一个子类型对象例子:
public static <E extends Enum<E>> EnumSet<E> noneOf(Class<E> elementType) { Enum[] universe = getUniverse(elementType); if (universe == null) throw new ClassCastException(elementType + " not an enum"); if (universe.length <= 64) return new RegularEnumSet<E>(elementType, universe); else return new JumboEnumSet<E>(elementType, universe); }
进一步解释:这样使用者就不关心到底要返回什么子类,只需要知道返回的是某个子类就可以了,具体实现和判断在父类中进行实现,从而有一天需要对所使用子类进行修改时不会引起代码大的冲突
4.创建一个参数化类型实例时,可以简化代码
缺点:
1.类如果不含有公有的或者受保护的构造器,就不能被继承。
2.与其他的静态方法没有区别,想具体的查看如何实体化一个类不方便。
阅读全文
0 0
- Effective java读书笔记1
- Effective Java 读书笔记1
- 读书笔记1(Effective java)
- Effective Java读书笔记1
- 《Effective Java》读书笔记之一
- 《Effective Java》读书笔记
- Effective Java读书笔记
- Effective Java 读书笔记
- 《Effective Java》读书笔记
- 《Effective Java》读书笔记之一
- Effective java 读书笔记
- 《Effective in java》 读书笔记
- Effective Java读书笔记
- Effective java 读书笔记
- Effective Java读书笔记
- Effective Java读书笔记一
- Effective Java读书笔记二
- Effective Java读书笔记三
- ASP.net 服务器控件: DropDownCheckBoxList 下拉多选框
- 企业Web常用架构LAMP-LNMP实战
- 工具类Calendar务必用原始的变量(这是一个坑)
- 什么是原子性,什么是原子性操作?
- UVA 11059
- 读书笔记1(Effective java)
- Retrofit2.0 使用教程
- 实现对easyui-datagrid的数据行批量修改(包括修改内容和删除)
- L3-014. 周游世界
- TCP/IP协议、HTTP协议、SOCKET通讯详解
- vim操作笔记
- 史上最口语化Arduino入门教程——简介
- C++控制台程序弹出消息框
- UVA 10976