查了半天也沒懂內(nèi)部類存在的價(jià)值到底在哪,至少我在開發(fā)過程中僅僅覺得內(nèi)部類只是寫起來方便一點(diǎn)而已,并不知道意義何在。
在Android我覺得有兩個(gè)地方常常寫成內(nèi)部類的形式:
- 創(chuàng)建匿名內(nèi)部類實(shí)現(xiàn)接口的時(shí)候
- 實(shí)現(xiàn)某個(gè)Activity的UIData的時(shí)候,定義在Activity內(nèi)部會(huì)比較清晰
至于多繼承、閉包之類的用途,我暫時(shí)想不通。
以下是摘抄:
- 內(nèi)部類可以用多個(gè)實(shí)例,每個(gè)實(shí)例都有自己的狀態(tài)信息,并且與其他外圍對(duì)象的信息相互獨(dú)立。
- 在單個(gè)外圍類中,可以讓多個(gè)內(nèi)部類以不同的方式實(shí)現(xiàn)同一個(gè)接口,或者繼承同一個(gè)類。
- 創(chuàng)建內(nèi)部類對(duì)象的時(shí)刻并不依賴于外圍類對(duì)象的創(chuàng)建。
- 內(nèi)部類并沒有令人迷惑的“is-a”關(guān)系,他就是一個(gè)獨(dú)立的實(shí)體。
- 內(nèi)部類提供了更好的封裝,除了該外圍類,其他類都不能訪問
可參考:
https://www.zhihu.com/question/21373020
http://www.cnblogs.com/chenssy/p/3388487.html