我想了一下,覺得可能是自己對(duì)于程序設(shè)計(jì)這一塊不熟悉。是的,你覺得沒(méi)錯(cuò)。所以打算從設(shè)計(jì)模式入手。這是一個(gè)好主意。不過(guò)你不要期望能夠“畢其功于一役”,這很難。要真正學(xué)懂設(shè)計(jì)模式并能靈活的運(yùn)用/套用在現(xiàn)實(shí)中,需要很多次/長(zhǎng)期的反復(fù)學(xué)習(xí)與練習(xí)。你的基礎(chǔ)和天賦會(huì)有助于減少這些消耗,但有的東西僅僅是靠看書真的無(wú)法變成知識(shí)。對(duì)于你的問(wèn)題,答案是肯定的。雖然你現(xiàn)在的“不明白”不一定全是因?yàn)槟悴欢绦蛟O(shè)計(jì),但軟件設(shè)計(jì)的知識(shí)總是能夠幫助到你,多多少少。注意一點(diǎn),設(shè)計(jì)模式并非軟件設(shè)計(jì)的全部,只是其中的很重要的一部分。在我們編程生涯的很長(zhǎng)一段時(shí)間里,我們都會(huì)經(jīng)歷想你說(shuō)的那種“這種水平注定是讀不懂的”的階段,但是這不應(yīng)當(dāng)成為阻攔你繼續(xù)閱讀源代碼的理由。所謂“無(wú)師自通”是不太現(xiàn)實(shí)的,學(xué)習(xí)編程這件事情本身就沒(méi)有定規(guī),它是一種綜合素質(zhì)的體現(xiàn)。你不能指望自己一頭扎進(jìn)“設(shè)計(jì)模式”的大坑,等爬出來(lái)之后“閱讀開源項(xiàng)目”就水到渠成了;反過(guò)來(lái)也是一樣。它們應(yīng)該是相互促進(jìn)的關(guān)系,有點(diǎn)類似于“理論與實(shí)踐相結(jié)合”。閱讀源代碼的時(shí)候,重點(diǎn)不在于“我是否完全懂了”,而在于“我都讀懂了哪些?還有哪些不懂?”懂了的,實(shí)際動(dòng)手的時(shí)候嘗試用進(jìn)去,不懂的,學(xué)習(xí)軟件設(shè)計(jì)的相關(guān)知識(shí)去搞懂它。并且有鑒于此,閱讀源碼也不一定非要選擇大型項(xiàng)目,有的時(shí)候哪怕十幾行的片段都能讓人受益匪淺——不過(guò)當(dāng)然,談及到“設(shè)計(jì)”的層面,當(dāng)然要上到一定的規(guī)模才能有所體現(xiàn)。