我對Scala非常陌生,並試圖理解它的各種構造和它們的用例,所以歸結爲case-classes,它們非常適合模式匹配等。我們所有的模型類應該是案例類嗎?
所以在看MVC的觀點,應該我們所有的模型都是案例類來利用這個功能?
我查看了play framework的示例代碼片段,並找到了一個模型類被定義爲案例類的示例。
我對Scala非常陌生,並試圖理解它的各種構造和它們的用例,所以歸結爲case-classes,它們非常適合模式匹配等。我們所有的模型類應該是案例類嗎?
所以在看MVC的觀點,應該我們所有的模型都是案例類來利用這個功能?
我查看了play framework的示例代碼片段,並找到了一個模型類被定義爲案例類的示例。
這並不少見。有各種庫,例如用於MongoDB的Salat,它將從您選擇的數據存儲中存儲和檢索案例類實例。
如果您有像swing component models這樣的模型(例如表模型),那麼案例類可能不是最佳選擇。如果您使用它們來表示從數據庫檢索到的數據,那麼案例類是(觀察性)不可變的情況下的一個很好的選擇。對於揮杆模型,可能並非如此,例如,如果允許用戶更改表格數據。
不知道如何適應鞦韆,但你總是可以擁有鏡頭。 – pedrofurla 2012-07-19 01:08:47
你可能可以,但是由此產生的組合聽起來像尖叫「錯誤的設計決定」給我。假設表格是要編輯的,那麼你會選擇一個不可變的數據結構 - 這對我來說聽起來很奇怪 - 只是爲了讓一層鏡頭處於頂層,讓它再次變得可變(而且更復雜)。 – 2012-07-19 07:46:26