一、設計模式概念
設計模式是一套被反復使用、多數人知曉、經過分類編目的優秀代碼設計經驗的總結。使用設計模式的目的就是為了提高代碼的重用性、增強代碼的可靠性、使代碼更容易被人所理解。設計模式使代碼編制真正工程化,是軟件工程的基石。在面對對象編程語言中,如JAVA,設計模式向我們提供了一套可復用的面向對象技術。
Java設計模式貫徹的原理是:面向接口編程,而不是面向實現。其目標原則是:降低耦合,增強靈活性。
二、設計模式要素
描述設計模式需要一定的格式,可以采用的格式有很多,如GoF格式和Alexander格式。在不同的格式中,雖然有一些細節上的不同,但設計模式英愛包含以下幾個要素。
-模式名稱
一個好的名稱可以簡潔而有效的描述設計模式的問題、解決方案和效果。一個模式必須要有一個簡單準確而又有意義的名字。好的模式名稱方便設計人員之間的交流與討論。
-問題
-環境或初始環境
-解決方案
-效果
-舉例
-莫態環境
-推理
-其他有關模式
-已知的應用
三、設計模式分類
常用的設計模式可以分為23種,三大類,分別為:創建型(5)、結構型(7)、行為型(11)。
1.創建型
創建型模式是用來創建對象的模式,它將實例化的過程抽象,幫助一個系統獨立于其關聯對象的創建、組合和表示方式。所有的創建型模式都有一以下兩個功能:
-將系統所使用的具體類的信息封裝起來。
-隱藏實例過程中的具體實現細節,只提供它們共同的接口。
常見的創建型設計模式有下列幾種:
單例模式(Single Pattern)
工廠方法模式(Factory Pattern)
抽象工廠模式(Abstract Factory)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)
2.結構型
顧名思義,結構型模式討論的是類和對象的結構,它采用繼承機制來組合接口或實現(類結構型模式),或者通過組合一些對象實現新的功能(對象結構型模式)。
常見的結構型設計模式有下列幾種:
代理模式(Proxy)
裝飾模式(Decorator)
適配器模式(Adapter)
組合模式(Composite)
橋梁模式(Bridge)
外觀模式(Facade)
享元模式(Flyweight)
3.行為型
行為型模式關注的是對象的行為,用來解決對象之間的聯系問題。
常見的行為型設計模式有下列幾種:
模板方法模式(Template Method)
命令模式(Command)
責任鏈模式(Chain of Responsibility)
策略模式(Strategy)
迭代器模式(Iterator)
中介者模式(Mediator)
觀察者模式(Observer)
備忘錄模式(Memento)
訪問者模式(Visitor)
狀態模式(State)
解釋器模式(Interpreter)