Java中取对象实例方法
1.共有的构造方法
Booleanbool=newBoolean("ture");publicBoolean(booleanvalue){this.value=value;}
2.静态工厂方法
Booleanbool=Boolean.valueOf("ture");publicstaticBooleanvalueOf(Strings){returnparseBoolean(s)?TRUE:FALSE;}
静态工厂方法的优势
静态工厂方法可以有自己的名字,见文知义;
静态工厂方法能够为重复的调用返回相同的对象,不必每次调用都创建一个新的实例;
//TRUE和FALSE是Boolean类的两个静态不可变属性publicstaticfinalBooleanTRUE=newBoolean(true);publicstaticfinalBooleanFALSE=newBoolean(false);
静态工厂方法可以返回原返回类型的任何子类型的对象;
...
静态工厂方法的缺点
静态工厂方法很难被程序员发现,下面给出一些通用的命名:
from - 类型转换方法
Datedate=Date.from(instant);
of - 聚合方法
Set<Rank>faceCards=EnumSet.of(JACK,QUEUE,KING);
ValueOf - 常见
Stringstr1=String.valueOf(123);Integerint1=Integer.valueOf("123");Longlong1=Long.valueOf("123");
instance或getInstance - 返回的实例通过方法的参数来描述
create或newInstance - 每次调用返回一个新的实例
...
总结
静态工厂方法更加适用,切记第一反应就是提供公有的构造器,而不先考虑静态工厂!