首页 > 代码库 > Think in Java 静态工厂方法学习总结

Think in Java 静态工厂方法学习总结

静态工厂方法是一个返回类实例的静态方法。静态工厂方法的用于替代构造方法。

1、静态工厂方法的优点

如果一个构造方法的参数没有具体描述要返回的对象,那么使用一定意义名字的静态工厂方法使得该类更利于使用。

如果一个类有多个特征相同的构造方法,那么应该考虑用有特殊意义名字的静态工厂方法来代替构造方法。

静态工厂方法在调用的时候不要求一定要有类对象。对于一个非可变类,可以使用一个预先构造好的实例,或者实例已经缓存起来,避免创建重复对象。

静态工厂方法可以为重复的调用返回同一个对象。第一他可以使一个类确保是单例的;第二他使得非可变类不存在两个相等的实例(==和eques都为真)。用==代替eques可以提高性能。

静态工厂方法可以返回一个类的子类对象。实现返回一个非公有类,隐藏具体实现,API更简洁。

接口作为静态工厂方法的自然返回类型。


2、静态工厂方法的不足

类如果不含有公有或保护类构造方法,就不能被子类化。

常用valueOf getInstance 

3、总结

构造方法符合规范,优先使用。

Think in Java 静态工厂方法学习总结