2011-05-25 20 views
3

如果我想要一個系列化安全單身,我寧願推薦的代碼風格:case對象Foo或對象Foo擴展Serializable?

case object Foo 

object Foo extends Serializable 

+1

這是一個風格問題?這兩個代碼示例做了不同的事情! – 2011-05-25 19:03:38

+0

這兩個* *不相同。 – Raphael 2011-05-25 19:09:47

+0

我從來沒有聲稱它們是等價的,只是將相同的代碼序列化添加到字節碼中。 – soc 2011-05-29 14:12:49

回答

2

我認爲這取決於你打算如何使用這個對象。案例對象通常與案例類一起使用以表示代數數據類型中的某種初始或終端對象,例如NilNone。常規對象通常是類的伴侶,以保存靜態方法,如單例方法和工廠方法。

如果您計劃將此對象與其他類一起使用,將其序列化並在模式匹配中使用它,將其定義爲案例對象對我來說似乎更自然。

相關問題