Effective Java 14-22
有些內(nèi)容已經(jīng)是老生長(zhǎng)嘆,所以只是列舉一下,不再詳細(xì)說(shuō)明十四:復(fù)合優(yōu)于繼承(Think in java中有不少說(shuō)明)
十五:要們專(zhuān)門(mén)為繼承而設(shè)計(jì),并給出文檔說(shuō)明,要么禁止繼承
十六:接口優(yōu)于抽象類(lèi)(參考一下GOF的設(shè)計(jì)模式)
十七:接口只是被定義類(lèi)型,不要試圖使用常量接口
十八:優(yōu)先考慮靜態(tài)成員類(lèi)
說(shuō)明:嵌套類(lèi)有四種
靜態(tài)成員類(lèi)?, 非靜態(tài)成員類(lèi),?? 匿名類(lèi),? 局部類(lèi)? 除了第一種之外,其它三種都被稱(chēng)為內(nèi)部類(lèi)
1,靜態(tài)成員類(lèi)是一種最簡(jiǎn)單的嵌套類(lèi),最好把它看成一個(gè)普通類(lèi),只是碰巧被聲明在另一個(gè)類(lèi)內(nèi)部而已,
它可以訪問(wèn)外圍類(lèi)的所有成員,包括那些生民為私有的成員。靜態(tài)成員類(lèi)是外圍類(lèi)的一個(gè)靜態(tài)成員,也遵守同樣的可訪問(wèn)性規(guī)則,如果它被聲明為私有的,那么它只能在外圍類(lèi)內(nèi)部可以訪問(wèn)。靜態(tài)成員類(lèi)的一個(gè)用法是公有的輔助類(lèi)。例如HashMap的? static class Entry
非靜態(tài)成員類(lèi)和靜態(tài)成員類(lèi)的區(qū)別主要是非靜態(tài)成員類(lèi)需要一個(gè)外圍類(lèi)實(shí)例的引用,如果你不需要訪問(wèn)外圍類(lèi)的實(shí)例的話,記得使用靜態(tài)成員類(lèi)。
匿名類(lèi)被使用的相對(duì)多一些,但是大量的使用匿名類(lèi)會(huì)讓你的代碼比較亂,作過(guò)GUI開(kāi)發(fā)的人多會(huì)有所感觸。并且記住,盡可能的讓你的匿名類(lèi)短小。
局部類(lèi),局部類(lèi)的使用是最少的,很少會(huì)使用到這個(gè),如果用到記得使局部類(lèi)盡可能的短小
對(duì)于C語(yǔ)言用戶(hù)的部分
十九:用類(lèi)代替結(jié)構(gòu)
二十:用類(lèi)層次代替聯(lián)合
二十一:用類(lèi)來(lái)代替enum,但是在jdk1.5的時(shí)候提供了enum的支持,有些東西不一樣了
二十二:用類(lèi)和接口代替函數(shù)指針
posted on 2007-02-01 22:22 dreamstone 閱讀(1318) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): jdk相關(guān)