0
計算字段我想完全接受由MVC方法提供關注點分離,但已經達到了,我會在感激的建議路障的東西。 你如何處理/應該在哪裏放置未存儲在數據庫後端的字段的代碼,但可以直接從它派生出來?與MVC
例如,我可以具有表示人的模型。存儲的信息可能包括他們的出生日期。顯然,我可以從中計算出他們當前的年齡,但不會將其存儲在數據庫中。現在,我想用Lambda將年齡作爲一個字段來訪問人物(可能選擇某個年齡段的所有人)。但是,如果我將代碼放入模型中,我是否沒有打破關注的分離?即使我確實把它放在那裏,當通過get訪問字段時還是在創建對象時計算它是否應該計算?對DOB的改變如何?年齡是否應立即反映新價值,還是僅在記錄被寫回時?
讓我們假設,就事論事,該計算需要顯著的時間來處理,所以我們要減少其使用。
我希望這個問題是有道理的!
一個只讀場(一個用'GET'並沒有'set')的模式似乎像人們理想的地方,把這個邏輯。你試過了嗎?有錯誤嗎? – David
是的,沒有錯誤。但是我不知道各種Lambda函數查詢get的頻率如何?如果我正在做一個排序並且對每個比較都進行查詢會怎麼樣?那麼,當然,我的get函數可能被稱爲很多次!此外,我試圖找出「正確」的方式來做到這一點 - 分離擔憂。如果不是「正確」,是否有「更好」? – Paul
那有什麼問題?如果計算結果很重要,但結果很少發生變化,那麼您可以將結果值緩存到專用變量中,然後在影響計算的數據元素髮生更改時隨時緩存該緩存。 – David