設(shè)計(jì)模式與原則
設(shè)計(jì)模式原則是為了提高代碼的可維護(hù)性悲酷,可復(fù)用性和可擴(kuò)展性拗踢,設(shè)計(jì)模式是設(shè)計(jì)模式原則的具體體現(xiàn)会钝。
設(shè)計(jì)模式是什么烈评?
設(shè)計(jì)模式是針對某些經(jīng)常出現(xiàn)的問題而提出的行之有效的設(shè)計(jì)解決方案火俄,它側(cè)重思想重用,因此比框架更抽象讲冠、更普適瓜客,但多限于局部解決方案,沒有框架的整體性。
所以在學(xué)某種設(shè)計(jì)模式的時候在學(xué)設(shè)計(jì)的時候谱仪,我們應(yīng)該問自己玻熙,這種設(shè)計(jì)模式是為了解決什么問題的?它是什么原則的體現(xiàn)疯攒?它提高了代碼的什么性嗦随?
設(shè)計(jì)模式的分類
創(chuàng)建型模式
創(chuàng)建型模式(Creational Pattern)對類的實(shí)例化過程進(jìn)行了抽象,能夠?qū)④浖K中對象的創(chuàng)建和對象的使用分離敬尺。創(chuàng)建型模式在創(chuàng)建什么(What)枚尼,由誰創(chuàng)建(Who),何時創(chuàng)建(When)等方面都為軟件設(shè)計(jì)者提供了盡可能大的靈活性砂吞。創(chuàng)建型模式隱藏了類的實(shí)例的創(chuàng)建細(xì)節(jié)署恍,通過隱藏對象如何被創(chuàng)建和組合在一起達(dá)到使整個系統(tǒng)獨(dú)立的目的。
- 簡單工廠模式(Simple Factory)4
- 工廠方法模式(Factory Method)5
- 抽象工廠模式(Abstract Factory)5
- 建造者模式(Builder)2
- 原型模式(Prototype)3
- 單例模式(Singleton)4
結(jié)構(gòu)型模式
結(jié)構(gòu)型模式(Structural Pattern)描述如何將類或者對 象結(jié)合在一起形成更大的結(jié)構(gòu)蜻直。
結(jié)構(gòu)型模式又可分為類結(jié)構(gòu)型模式與對象結(jié)構(gòu)型模式锭汛。類結(jié)構(gòu)型模式一般存在繼承和實(shí)現(xiàn)關(guān)系,對象結(jié)構(gòu)型模式關(guān)心類與對象的組合袭蝗,通過關(guān)聯(lián)關(guān)系使得在一 個類中定義另一個類的實(shí)例對象唤殴,然后通過該對象調(diào)用其方法。 根據(jù)“合成復(fù)用原則”到腥,在系統(tǒng)中盡量使用關(guān)聯(lián)關(guān)系來替代繼 承關(guān)系朵逝,因此大部分結(jié)構(gòu)型模式都是對象結(jié)構(gòu)型模式。
- 適配器模式(Adapter) 4
- 橋接模式(Bridge) 3
- 組合模式(Composite) 4
- 裝飾模式(Decorator) 3
- 外觀模式(Facade) 5
- 享元模式(Flyweight) 1
- 代理模式(Proxy) 4
行為型模式
行為型模式(Behavioral Pattern)是對在不同的對象之間劃分責(zé)任和算法的抽象化乡范。
行為型模式不僅僅關(guān)注類和對象的結(jié)構(gòu)配名,而且重點(diǎn)關(guān)注它們之間的相互作用。
通過行為型模式晋辆,可以更加清晰地劃分類與對象的職責(zé)渠脉,并研究系統(tǒng)在運(yùn)行時實(shí)例對象 之間的交互。在系統(tǒng)運(yùn)行時瓶佳,對象并不是孤立的芋膘,它們可以通過相互通信與協(xié)作完成某些復(fù)雜功能,一個對象在運(yùn)行時也將影響到其他對象的運(yùn)行霸饲。
行為型模式分為類行為型模式和對象行為型模式兩種:
類行為型模式
類的行為型模式使用繼承關(guān)系在幾個類之間分配行為为朋,類行為型模式主要通過多態(tài)等方式來分配父類與子類的職責(zé)。
對象行為型模式
對象的行為型模式則使用對象的聚合關(guān)聯(lián)關(guān)系來分配行為厚脉,對象行為型模式主要是通過對象關(guān)聯(lián)等方式來分配兩個或多個類的職責(zé)习寸。根據(jù)“合成復(fù)用原則”,系統(tǒng)中要盡量使用關(guān)聯(lián)關(guān)系來取代繼承關(guān)系傻工,因此大部分行為型設(shè)計(jì)模式都屬于對象行為型設(shè)計(jì)模式霞溪。
- 職責(zé)鏈模式(Chain of Responsibility) 3
- 命令模式(Command) 4
- 解釋器模式(Interpreter) 1
- 迭代器模式(Iterator) 5
- 中介者模式(Mediator) 2
- 備忘錄模式(Memento) 2
- 觀察者模式(Observer) 5
- 狀態(tài)模式(State) 3
- 策略模式(Strategy) 4
- 模板方法模式(Template Method) 3
- 訪問者模式(Visitor) 1