静态工场方法代替构造器
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.