【文章內(nèi)容簡介】
tution Principle ,簡稱LSP),里氏代換原則中說,任何基類可以出現(xiàn)的地方,子類一定可以出現(xiàn),且程序運(yùn)行正常。 ? 特別提醒: 在進(jìn)行設(shè)計(jì)的時(shí)候,我們盡量從抽象類繼承,而不是從具體類繼承。如果從繼承等級樹來看,所有葉子節(jié)點(diǎn)應(yīng)當(dāng)是具體類,而所有的樹枝節(jié)點(diǎn)應(yīng)當(dāng)是抽象類或者接口。 ? ? 程序參考例 合成 /聚合復(fù)用原則 ? “優(yōu)先使用對象組合,而不是類繼承 ” 是面向?qū)ο笤O(shè)計(jì)的又一個(gè)原則。并不是說繼承不重要,而是因?yàn)槊總€(gè)學(xué)習(xí) OOP的人都知道 OO的基本特性之一就是繼承,以至于繼承已經(jīng)被濫用了,而對象組合技術(shù)往往被忽視了。 ? 一個(gè)類的成員變量可以是一個(gè)類創(chuàng)建的對象,那么該類創(chuàng)建的對象就包含了其他類的對象,也就是說該對象由其他對象組合而成了。 對象與所包含的對象屬于弱耦合關(guān)系,因?yàn)槿绻薷漠?dāng)前對象所包含的對象的類代碼,不必修改當(dāng)前對象的類的代碼。 面向?qū)ο蟮脑O(shè)計(jì)模式 ? 模式是針對特定場景下的特定問題的可重復(fù)、可表達(dá)的解決方案。 ? 如果你期望成為一名出色的 Java軟件開發(fā)者,就應(yīng)該學(xué)習(xí)設(shè)計(jì)模式。 ? 面向?qū)ο竽J酱砹艘环N思想,而不是具體細(xì)節(jié)。 策略模式的定義和結(jié)構(gòu) ? The Strategy Design Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithms vary independently from the clients that use it.(策略模式定義了一系列的算法,并將每一個(gè)算法封裝起來,而且使它們還可以相互替換。策略模式讓算法獨(dú)立于使用它的客戶而獨(dú)立變化。) ? 算法就是需要完成某項(xiàng)任務(wù)的過程。算法是個(gè)過程 ——包含一些指令序列,接受收入,產(chǎn)生輸出。單個(gè)方法也許也是