4 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊
一個(gè)重要的區(qū)別是接口可以具有屬性但不具有字段。對(duì)我來(lái)說(shuō),這強(qiáng)調(diào)應(yīng)該使用屬性來(lái)定義類(lèi)的公共接口,而字段則用于類(lèi)的私有內(nèi)部工作。作為一項(xiàng)規(guī)則,我很少創(chuàng)建公共字段,同樣我很少創(chuàng)建非公共屬性。

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
我將舉幾個(gè)使用可能使齒輪轉(zhuǎn)動(dòng)的屬性的例子:
延遲初始化:如果你有一個(gè)對(duì)象的屬性,加載成本很高,但在正常的代碼運(yùn)行中沒(méi)有被訪問(wèn),你可以通過(guò)屬性延遲加載。這樣,它只是坐在那里,但是第一次另一個(gè)模塊試圖調(diào)用該屬性時(shí),它會(huì)檢查底層字段是否為空 - 如果是,則繼續(xù)并加載它,調(diào)用模塊不知道。這可以大大加快對(duì)象初始化。
臟跟蹤:我在StackOverflow上從我自己的問(wèn)題中實(shí)際了解到了這一點(diǎn)。當(dāng)我有很多對(duì)象在運(yùn)行期間可能已經(jīng)更改了值時(shí),我可以使用該屬性來(lái)跟蹤是否需要將它們保存回?cái)?shù)據(jù)庫(kù)。如果沒(méi)有對(duì)象的單個(gè)屬性發(fā)生更改,則IsDirty標(biāo)志不會(huì)被觸發(fā),因此在決定需要返回?cái)?shù)據(jù)庫(kù)時(shí),保存功能將跳過(guò)它。
- 4 回答
- 0 關(guān)注
- 1287 瀏覽
添加回答
舉報(bào)