这本书我记得以前好像看过,但是最近随手翻了翻感觉好像又都忘了。这本书和之前的修炼之道类似,都分成了很细的小结,正好重读一遍吧。
先看第二章创建和销毁对象,第一条是用及静态工厂方法代替构造器,作者给出了如下几条理由:
1.静态工厂方法有名称。这一点确实让我眼前一亮,确实,一个好的名称能说明很多。
2.静态工厂方法不必在每次调用的时候都创建一个新的对象。
3.静态工厂方法可以返回原返回类型的任何子类型的对象,更灵活。
4.静态工厂方法在创建参数化实例的时候更简洁。类型推断平时一直在用,都没有注意过,看了书去查了才知道,原来知道jdk7中才支持在构造函数中使用类型推断。
同时,作者也指出了静态工厂方法相对的缺点,分别是类只有有了公有或者受保护的(public、protected)才能被子类化和静态工厂方法和其他静态方法没有区别。为了避免这些缺点,作者更加推荐使用复合而非继承,推荐我们使用惯用的命名(valueOf, of, getInstance, newInstance, getType, newType)。
网友评论