3 回答

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
如果無(wú)論如何都會(huì)有公眾參與,為什么您要比絕對(duì)必要的范圍更廣泛地公開(kāi)該領(lǐng)域?這意味著它可以被子類立即寫入(除非從頭開(kāi)始是最終的)。
就我個(gè)人而言,我希望所有領(lǐng)域都是私有的:它提供了API與實(shí)現(xiàn)之間更清晰的分隔。我認(rèn)為超類和子類之間的關(guān)系類似于調(diào)用者和被調(diào)用者之間的關(guān)系-對(duì)基礎(chǔ)實(shí)現(xiàn)的更改不應(yīng)破壞子類,而應(yīng)該破壞調(diào)用者。字段名稱是實(shí)現(xiàn)細(xì)節(jié),不應(yīng)影響其他類。
誠(chéng)然,我的觀點(diǎn)是偶爾看到的有點(diǎn)極端的...

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
您應(yīng)該始終針對(duì)類的公共API進(jìn)行編程,即使用公共方法。
原因很簡(jiǎn)單。在將來(lái)的某一天,您或其他人可能想要更改實(shí)施。這應(yīng)該始終是可能的。如果您依賴實(shí)例變量,則會(huì)限制自己。
另外,訪問(wèn)變量時(shí),您無(wú)法控制該變量是否為只讀,也不能在更改此變量時(shí)添加檢查。
如果您使用的制定者/吸氣,你可以添加永諾驗(yàn)證,檢查等以后。您也只能提供一個(gè)getter來(lái)使變量變?yōu)橹蛔x。
添加回答
舉報(bào)