创建和销毁对象
考虑用静态工厂方法代替构造器
主要有 4 点优势:
- 它们有名字
- 不需要再每次调用的时候都创建一个新的对象
可以返回原返回类型的任何子类型的对象
有点绕,但是不难理解。
例如,Java Collections Framework 的集合接口有 32 个实现,几乎所有的实现都是通过静态工厂方法在一个不可实例化的类中导出的。
在创建参数化类型实例的时候,代码更简洁。
举个栗子:
传统写法
主要有 4 点优势:
可以返回原返回类型的任何子类型的对象
有点绕,但是不难理解。
例如,Java Collections Framework 的集合接口有 32 个实现,几乎所有的实现都是通过静态工厂方法在一个不可实例化的类中导出的。
在创建参数化类型实例的时候,代码更简洁。
举个栗子:
传统写法
对于 C 和 C++ 程序员来说,他们即拥有每一个对象的“所有权”,同时也担负每一个对象生命周期的维护责任。
而 Java 程序员则是在虚拟机自动内存管理机制的帮助下,不用操心对象内存的释放。但是也正由于这个帮助,一旦程序出现内存泄漏和溢出问题的时候,由于不够了解虚拟机运行机制,而对问题无从下手。