1.單例模式
確定某個類只有乙個例項,而且自行例項化並向整個系統提供這個例項
2.工廠模式
定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,工廠方法使乙個類的例項化延遲到其子類
3.抽象工廠模式
為建立一組相關或相互依賴的物件提供乙個介面,而且無需指定他們的具體類
4.模版方法模式
定義乙個操作中的演算法的骨架,而將一些步驟延遲到其子類,使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟
5.建造著模式
將乙個複雜的物件的構建與他的表示分離,使得同樣的構建過程可以建立不同的表示
6.**模式
為其他物件提供一種**以控制對這個物件的訪問
7.原型模式
用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件
8.中介者模式
用乙個中介物件封裝一系列的物件互動,中介者使各物件間不需要顯示的相互作用,從而使其耦合鬆散,而且可以獨立的改變他們之間的互動
9.命令模式
把乙個請求或者操作封裝在命令物件中。命令模式允許系統使用不同的請求把客戶端引數化,對請求排隊或者記錄請求日誌,可以提供命令的撤銷或恢復功能
10.責任鏈模式
使多個物件都有機會處理請求,從而避免類請求的傳送物件和接受物件之間的耦合關係,將這些物件連線成一條鏈,並沿著這條鏈傳遞該請求,直到有物件處理它為止
11.裝飾模式
動態的給乙個物件增加一些額外的職責,就增加功能來說,他相比生成子類更加靈活
12.策略模式
定義一種演算法,使每個演算法都封裝起來,並且使他們可以互相轉換
13.介面卡模式
將乙個類的介面變換成客戶所需要的另外一種介面,從而使原本因介面不匹配而無法在一起工作的兩個類能夠在一起工作
14.迭代器模式
提供一種方法訪問乙個物件中各個元素,而又不需暴露該物件的內部實現細節
15.組合模式
將物件組合成樹形結構以表示「部分-整體」的層次結構,使得使用者對單個物件和組合物件的使用具有一致性
16.觀察者模式
定義物件中一種一對多的依賴關係,使得每當乙個物件改變狀態,使得所有依賴與他的物件都會得到通知並被自動更新
17.門面模式
要求乙個子系統的外部與其內部的通訊必須通過乙個統一的物件進行,門面模式提供乙個高層次的介面,使得子系統更容易使用
18.備忘錄模式
在不破壞乙個物件的封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態,這樣以後就可以將該物件恢復到之前儲存的狀態
19.訪問者模式
封裝一些作用於某種資料結構中的各元素的操作,他可以不改變資料結構的前提下定義作用於這些元素的新的操作
20.狀態模式
當乙個物件改變狀態時允許其改變行為,這個物件看起來像是改變了其類
21.直譯器模式
給定一種語言,定義他的文法的一種表示,並定義乙個直譯器,該直譯器使用該表示解釋語言中的句子
22.亨元模式
使用共享物件可有效的支援大量的細粒度的物件
23.橋梁模式
將抽象和實現解耦,使得兩者可以獨立的變化
設計模式 23種設計模式
一 軟體設計模式的概念 軟體設計模式 software design pattern 又稱設計模式,是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。它描述了在軟體設計過程中的一些不斷重 生的問題,以及該問題的解決方案。也就是說,它是解決特定問題的一系列套路,是前輩們的 設計經驗的總結...
23種設計模式
建立型 1.單件模式 singleton pattern 2.抽象工廠 abstract factory 3.建造者模式 builder 4.工廠方法模式 factory method 5.原型模式 prototype 結構型 6.介面卡模式 adapter pattern 7.橋接模式 bridg...
23種設計模式
設計模式 一書歸納出23種設計模式 1 建立型模式 前面講過,社會化的分工越來越細,自然在軟體設計方面也是如此,因此物件的建立和物件的使用分開也就成為了必然趨勢。因為物件的建立會消耗掉系統的很多資源,所以單獨對物件的建立進行研究,從而能夠高效地建立物件就是建立型模式要 的問題。這裡有6個具體的建立型...