簡(jiǎn)介
- 設(shè)計(jì)模式是經(jīng)過(guò)驗(yàn)證的面向?qū)ο笤O(shè)計(jì)經(jīng)驗(yàn)
- 模式不是給你代碼,是給你通用設(shè)計(jì)問(wèn)題的解決方案,你在你的程序中應(yīng)用這些模式
- 模式不是被發(fā)明的,是被發(fā)現(xiàn),總結(jié)的
- 多數(shù)模式和原則都是解決軟件
變更
的引發(fā)的問(wèn)題
面向?qū)ο筇卣?/h1>
- Abstraction 抽象
- Encapsulation 封裝
- Polymorphism 多態(tài)
- Inheritance 繼承
設(shè)計(jì)原則
識(shí)別程序中變化的部分
將程序中變化的部分與不變的部分分離弟孟,封裝,這樣將來(lái)你可以改變或者擴(kuò)展這部分而不影響其他部分
面向接口而不是面向?qū)崿F(xiàn)編程
此處接口
泛指接口和抽象父類
盡量使用對(duì)象組合而不是繼承
類中類對(duì)象作為類的屬性來(lái)實(shí)現(xiàn)功能復(fù)用样悟,增加靈活性拂募,同時(shí)允許子類運(yùn)行時(shí)(通過(guò)set
方法)改變對(duì)象行為
努力在交互對(duì)象之間實(shí)現(xiàn)松耦合設(shè)計(jì)
松耦合的設(shè)計(jì)可以使我們構(gòu)建靈活的OO系統(tǒng),能夠很好的應(yīng)對(duì)變更窟她,因?yàn)樗麄儗?duì)彼此依賴度低
設(shè)計(jì)目標(biāo)
- Reusable 可復(fù)用性
- Extensible 可擴(kuò)展性
- Maintainable 可維護(hù)性