Java里面的封裝是不是多此一舉?
在你說的這樣的場(chǎng)景下,這些封裝的確完全是多余的,這點(diǎn)我首先表示完全認(rèn)同。但在實(shí)際真實(shí)的項(xiàng)目中,你這樣的場(chǎng)景完全不存在。
幾個(gè)小例子:
①我有一個(gè)屬性age必須不小于0,如果它是public的可以直接修改,我如何在設(shè)置的時(shí)候驗(yàn)證?但setAge封裝方法可以做到。
②數(shù)據(jù)庫(kù)里面存儲(chǔ)了固定以人民幣為單位的價(jià)格屬性price,需要自動(dòng)顯示成不同國(guó)家的貨幣怎么辦?我可以給他增加一個(gè)匯率屬性,方法始終都保持一致叫g(shù)etPrice,這樣別的地方都不用變就能搞定。
③你自己當(dāng)然知道哪些該訪問哪些不該訪問,但一個(gè)項(xiàng)目小則三五人多則成百上千,你能保證他們每個(gè)人都知道嗎?我只能通過public/private強(qiáng)制讓他們知道。
這樣麻煩是麻煩點(diǎn),但大家都按照這個(gè)規(guī)則來,就能盡量減少出錯(cuò)。
PPS:Kotlin能省下你的這些煩惱。