静态工场方法代替构造器

1.对于一个类而言,获取实例常用的方法就是提供一个public constructor

2.学过design pattern的人,肯定能猜到另外一种方法就是static factory method(sfm)

1 public static Boolean valueOf(boolean b){
2 return b?Boolean.TRUE:Boolean.FALSE;}


优点:

1.静态工场方法有名称,比构造器更能理解其职能。而且涉及构造器overload时,sfm更见清晰,除非你愿意写一堆参数不同的构造器

2.sfm每次使用时不需要每次都创建一个对象,参照flyweight模式,想想jdbc的连接池,sfm真是不错

3.sfm可以返回原返回类型的任何子类型对象

4.sfm在创建参数化类型实例的时候,使得代码更加简洁

缺点:

1.类如果不含public or protected的构造器,就不能被子类化

2.sfm与其他静态方法一个鸟样...



I am a slow walker, but I never walk backwards.



原文地址:https://www.cnblogs.com/lknny/p/4758456.html