TA貢獻1828條經驗 獲得超6個贊
一個重要的區別是接口可以具有屬性但不具有字段。對我來說,這強調應該使用屬性來定義類的公共接口,而字段則用于類的私有內部工作。作為一項規則,我很少創建公共字段,同樣我很少創建非公共屬性。
TA貢獻1891條經驗 獲得超3個贊
我將舉幾個使用可能使齒輪轉動的屬性的例子:
延遲初始化:如果你有一個對象的屬性,加載成本很高,但在正常的代碼運行中沒有被訪問,你可以通過屬性延遲加載。這樣,它只是坐在那里,但是第一次另一個模塊試圖調用該屬性時,它會檢查底層字段是否為空 - 如果是,則繼續并加載它,調用模塊不知道。這可以大大加快對象初始化。
臟跟蹤:我在StackOverflow上從我自己的問題中實際了解到了這一點。當我有很多對象在運行期間可能已經更改了值時,我可以使用該屬性來跟蹤是否需要將它們保存回數據庫。如果沒有對象的單個屬性發生更改,則IsDirty標志不會被觸發,因此在決定需要返回數據庫時,保存功能將跳過它。
舉報
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號