第一条:用静态工厂方法代替构造器

Posted shuzi0806

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一条:用静态工厂方法代替构造器相关的知识,希望对你有一定的参考价值。

一:简述

让外部调用者获取类的一个实例(创建该类的对象),可以不提供一个公有的构造器,转而提供一个公有的静态工厂方法,该方法返回类的实例。

二:优点:

1.创建对象时,有名称,不再是通过重载构造方法从而实现不同的对象创建,更加清晰,比构造器命名方式更灵活。
2.再某些情况下,不需要每次new都出现一个新对象,如:Boolean.valueOf("true"),从来不创建对象。如果程序经常创建代价很高的相同对象,则可以考虑。
3.方法返回对象所属的类,在编写该静态方法所属的类时可以不存在:
service provider framework (服务提供者框架)

三:缺点:

如果类不提供公有的或者受保护的构造器,就不能被子类化。

以上是关于第一条:用静态工厂方法代替构造器的主要内容,如果未能解决你的问题,请参考以下文章

考虑用静态工厂方法代替构造器的场景

第1条:考虑用静态工厂方法代替构造器

第1条:考虑用静态工厂方法代替构造器

读书笔记 - Effective Java01. 考虑用静态工厂方法代替构造器

用静态工厂方法代替构造器遇到多个构造器参数时要考虑用构建器

Effective Java -- 用静态工厂方法来代替构造器