假设您有一个SomeClass
具有自己的实现的类toString()
,并且还能够通过读取相同的字符串来解析自身的新实例.
您更喜欢哪种方法,还是更好用?您可以将其定义为另一个构造函数:
public SomeClass(String serializedString);
或者你可以将它定义为静态方法,然后创建一个新实例(由其他构造函数之一,用它做一些,并返回新实例:
public static SomeClass toObject(String serializedString);
它甚至重要吗?(我的预感是没有任何重要的事情,但我正在努力确保)
我自己的偏好是将解析逻辑保留在构造函数之外.这样它就可以根据需要调用适当的构造函数(可能是私有的).它不必依赖于默认对象构造等.所以我会使用toSomeClass()方法.
此外,Someclass(String)将根据序列化字符串解析对象并不是很清楚.对于采用String的构造函数,可能还有许多其他含义.toSomeClass()静态方法清楚地表明了这一点.