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

一:简述

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

二:优点:

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

三:缺点:

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

猜你喜欢

转载自www.cnblogs.com/shuzi0806/p/12237044.html