天天看點

設計模式筆記(十)--小結

        設計模式根據目的的不同可以分為建立型模式、結構型模式和行為型模式。

建立型模式(Creational Pattern):

為了靈活而高效地建立對象。

包含:工廠方法模式(Factory Method Pattern)、抽象工廠模式(Abstract Factory Pattern)、建立者模式/建造者模式(Builder Pattern)、原型模式(Prototype Pattern)、單例模式(Singleton Pattern)。

結構型模式(Structural Pattern):

為了完美處理對象的組成和對象間的依賴關系。

包含:外觀模式(Facade Pattern)、擴充卡模式(Adapter Pattern)、代理模式(Proxy Pattern)、裝飾者模式(Decorator Pattern)、橋模式(Bridge Pattern)、組合模式(Composite Pattern)、享元模式(Flyweight Pattern)。

行為型模式(Behavioral Pattern):

為了合理配置設定對象的行為/為了合理配置設定對象職責以及對象間的互動。

包含:模闆方法模式(Template Method Pattern)、觀察者模式(Observer Pattern)、狀态模式(State Pattern)、政策模式(Strategy Pattern)、職責鍊模式/責任鍊模式(Chain of Responsibility Pattern)、指令模式(Command Pattern)、通路者模式(Visitor Pattern)、中介者模式/調停者模式(Mediator Pattern)、備忘錄模式(Memento Pattern)、疊代器模式(Iterator Pattern)、解釋器模式(Interpreter Pattern)。

        這樣一算起來5 + 7 + 11 = 23種常用的設計模式,看我數學多好,哈哈!

        當然,我們沒有必要對這23種模式的每一種都精通,也很難靈活地運用。我們發現并總結出這些模式來,就是為了指導我們更好地設計或者重構系統。前面幾篇文章言簡意赅(反正我這麼覺得的^.^)地分析了一些常用設計模式,給自己一個溫習以及和大家交流學習的平台。

        其實,我們寫程式時不要被這些模式束縛住手腳,有些時候我們都是先簡單寫出一個系統,然後發現問題,再根據設計模式進行重構,甚至有些小的功能子產品不用設計模式反而更加高效且易了解。是以寫程式時要時刻謹記設計模式的一些設計原則,規範自己程式結構和邏輯,不要出現一段代碼在程式中多次出現的情況,但也不要過度地使用設計模式。正所謂武功修煉的最高境界,忘掉所有的招式,靈活出招,即無招勝有招。

        我們以前也或多或少地用過一些設計模式,隻是我們沒有發現而已,如果想要深刻地了解這些設計模式,就要多接觸項目,多積累經驗,多進行總結。