希望這不會成爲一個愚蠢或迂腐的問題,但我很好奇。更新對象時毫無意義的getter檢查
偶爾我會在出現以下情況:現有對象的屬性,可能需要用新的變量進行更新,我會做這樣的(無特定語言):
public void Update(date, somevar){
if(date > this.Date){
this.Var = somevar;
}
}
的想法如果傳遞給函數的日期比當前對象中的日期更新,則該變量將被更新。把它看作是緩存某些東西的基本方式。現在
,有趣的是,我知道相比this.Var
時somevar
將永遠是「老」,但它可能是相同的。所以就我所知,檢查日期毫無意義,因此對於程序來說是無意義的操作。
那麼這實際上是關於是它是否是更好的 - 以任何方式 - 執行寫入到this.Var
每次更新都被調用時,或得到this.Date
,比較,然後可能執行寫入。只是爲了在這裏拋出一些有趣的東西,如果更新被多次調用呢?
如果我給出的例子沒有意義或者有漏洞,我表示歉意;我想不出舉一個例子的另一種方式,但希望你能看到我在這裏想要說明的一點。
我忘了提及IO - 我的錯。讀完我寫的東西后,我想我想說的是,做一個'get'然後_possibly_一個'set'是一個好的選擇,而不是**總是**做一個'set'。 唉...謝謝。 – daniel 2011-12-20 09:01:11