??? 關于設計模式,Gof 的的定義,就是對被用來在特定場景下解決一般設計問題的類和相互通信的對象描述,有點抽象,呵!
??? 引用banq的話,整個設計模式貫穿一個原理:面對接口編程,而不是面對實現.目標原則是:降低耦合,增強靈活性.
??? 平時用的最多的工廠模式和單例(單態)模式就不說了.
?Abstract Factory:提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。(使用得非常頻繁。)
?Adapter:將一個類的接口轉換成客戶希望的另外一個接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。
?Bridge:將抽象部分與它的實現部分分離,使它們都可以獨立地變化。
?Builder:將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。
?Chain of Responsibility:為解除請求的發送者和接收者之間耦合,而使多個對象都有機會處理這個請求。將這些對象連成一條鏈,并沿著這條鏈傳遞該請求,直到有一個對象處理它。
?Command:將一個請求封裝為一個對象,從而使你可用不同的請求對客戶進行參數化;對請求排隊或記錄請求日志,以及支持可取消的操作。
?Composite:將對象組合成樹形結構以表示“部分-整體”的層次結構。它使得客戶對單個對象和復合對象的使用具有一致性。
?Decorator:動態地給一個對象添加一些額外的職責。就擴展功能而言, 它比生成子類方式更為靈活。
?Facade:為子系統中的一組接口提供一個一致的界面, Facade模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。
?需要注意的是:
??如果你的接口永遠只有一個類實現,那么可能就沒有必要用接口。
? 你的接口只需要聲明別人用到的函數即可。