建立型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結構型模式,共七種:介面卡模式、裝飾器模式、**模式、外觀模式、橋接模式、組合模式、享元模式。
行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、
狀態模式、訪問者模式、中介者模式、直譯器模式。
建立:
單例 :
原型模式:
結構型:
裝飾模式: 動態地給乙個物件新增一些額外的職責
適配:
**: 封裝物件例項
享元: 棋子,棋盤
組合:
橋接: 將抽象部分與它的實現部分分離,(作為引數)讓它們各自發展,減少它們的耦合度
行為型:
訂閱 觀察
備忘錄模式:
命令模式: 命令的執行與撤銷
管理順序 waitor 命令執行者
策略: 演算法多型,就是策略
狀態: 把狀態用乙個指標分出去
訪問者: 分離物件資料結構與行為的方法
中介者:
直譯器: 有點像橋接,
責任鏈:
迭代器: 序訪問乙個聚合物件中各個元素,而又不暴露該物件的內部表示
模板方法 : 通過父類封裝虛函式,來控制模板
網路: 有多個輸入源,有多個不同的eventhandler(requesthandler)來處理不同的請求
缺點:在io讀寫資料時還是在同乙個執行緒中實現的,大檔案傳輸時會影響,因此 thread-per-conn 或proactor更好
學習設計模式 原型設計模式
先想一下既然要建立新的例項,為什麼不直接使用 new 而要設計出乙個原型模式進行例項的複製呢?這是因為 有的時候,我們也會在不指定類名的前提下生成例項,例如像圖形編輯器中拖動現有的模型工具製作圖形的例項,這種是非常典型的生成例項的過程太過複雜,很難根據類來生成例項場景,因此需要根據現有的例項來生成新...
設計模式學習
知道設計模式已經很久了,但是一直沒有認真的去系統的學習,這幾天才開始逐漸的學習起來。下面是我學習設計模式的一些心得。要想成為一名優秀的軟體設計師或軟體架構設計師,了解一些設計模式是很有必要的。我認為學習設計模式的思路如下 一 基本概念 理解物件導向 理解重用等概念性的東西 1.什麼是物件導向?2.物...
設計模式學習
所有的設計模式都是為了解決變化的問題,通過一定的模式來應對變化,變化應對的原則是開放封閉原則,對修改封閉,對擴充套件開放。為了應對變化,就會新增相應的層次,層次越多,的顆粒就越小,那麼 就越複雜。所以設計時考慮變化和複雜之間的取捨,為了應對變化 需要使用模式,但是又不可以一味應用模式,導致 太複雜。...