設計模式:設計模式就是已經被人們多次反復使用,用來解決某些特定問題的特定代碼解決辦法。
1、 簡單工廠模式:簡單工廠模式就是一個工廠可以生產多個產品類。
2、 工廠方法模式:工廠父類負責定義創建產品對象的公共接口,而工廠子類就是負責生成具體的產品對象,這個方法實現的是通過工廠子類可以確定究竟應該實例化哪一個具體產品類。
3、 抽象工廠模式:抽象工廠模式其實就上是泛化的工廠模式。在抽象工廠模式中的具體產品類可以生產多個具體產品。提供一個創建一系列相關或相互依賴對象的接口,並不需要定義它們具體的類,然后行駛工廠方法模式的功能,這就是抽象工廠模式。
4、 建造者模式:組合部件的過程是較為復雜的,所以,將這些部件的組合過程往往被外部化到一個稱作建造者的對象里,建造者返還給客戶端是一個完整的對象,而不需關心該對象包含的屬性以及組裝方式。
5、 原型模式:用原型實例指定創建對象的種類,並且通過復制這些原型創建新的對象。原型模式允許一個對象再創建另外一個可定制的對象,無須知道任何創建的細節。原型模式的基本工作原理是通過將一個原型對象傳給那個要發動創建的對象,這個要發動創建的對象通過請求原型對象復制原型來實現創建過程。
6、 單例模式:單例模式確保某一個類只有一個實例,而且自行實例化並向整個系統提供這個實例,這個類稱為單例類,它提供全局訪問的方法。單例模式的要點有三個:一是某個類只能有一個實例;二是它必須自行創建這個實例;三是它必須自行向整個系統提供這個實例。
7、 適配器模式:使原本不兼容的事物一起工作,適配器的存在,就是為了將已存在的東西轉換成適合我們的需要、能被我們所利用的東西,使用適配器模式時,客戶端一定要針對抽象目標類進行編程,
8、 橋接模式:橋接模式將抽象部分與實現部分分離,使它們都可以獨立地變化,將繼承關系轉換為了關聯關系,從而降低了類與類之間的耦合。
9、 組合模式:結動態地給一個對象增加一些額外的職責,就增加對象功能來說,裝飾模式比生成子類實現更為靈活。
10、裝飾模式:在被裝飾的類中調用在裝飾器類中定義的方法,實現更多更復雜的功能,也就是說裝飾模式可以在不需要創造更多子類的情況下,將對象的功能加以擴展。
11、 外觀模式:外部與一個子系統通信必須通過一個統一的外觀對象進行,為子系統中的一組接口提供一個一致的界面,外觀模式定義了一個高層接口,這個接口使得這一子接口更加容易使用。
12、享元模式:主要用於減少創建對象的數量,以減少內存占用和提高性能。運用共享技術有效支持大量細粒度對象的復用。當一個系統有大量相同或相似的對象時可以使用享元模式。
13、代理模式:如果一個客戶並不想直接引用一個對象,就可以通過一個稱之為“代理”的第三者來實現間接引用。代理對象其實可以看做在客戶端和目標對象之間起到中介的作用。給某一個對象提供一個代理,並由代理對象控制對原對象的引用。
14、職責鏈模式:職責鏈可以是一條直線,一個環或者一個樹形結構,沿着這條單向的鏈來傳遞請求,而鏈上的每一個對象都是請求處理者,職責鏈模式將請求的處理者組織成一條鏈,並使請求沿着鏈傳遞,由鏈上的處理者對請求進行相應的處理。職責鏈模式避免了請求發送者與接受者發生碰撞,使多個對象都有可能接受請求,進行相應的處理。
15、命令模式:將一個請求封裝為一個對象,從而使我們可用不同的請求對客戶進行參數化;對請求排隊或者記錄請求日志,以及支持可撤銷的操作。
16、解釋器模式:定義語言的文法,並且建立一個解釋器來解釋該語言中的句子,這個“語言”的含義就是使用規定格式和語法的代碼。
17、迭代器模式:舉個例子,如果將電視機看成一個視頻頻道的集合,那么迭代器就相當於是電視機遙控器。我們可以通過遙控器對電視頻道進行操作。迭代器模式提供了一種方法來訪問聚合對象,但是不用暴露對象的內部表示。
18、中介者模式:提供了一種簡化復雜交互的解決方案,引入一個中介者,將原本對象之間的兩兩交互轉化為每個對象與中介者之間的交互,降低了原有系統的耦合度,系統更加靈活。
19、備忘錄模式:提供了一種對象狀態的撤銷機制,相當於“后悔葯”,使系統恢復到原有歷史狀態。如果系統需要提供回滾操作時,使用備忘錄模式非常合適。例如文本編輯器的撤銷操作的實現,數據庫中事務操作。
20、觀察者模式:將發生改變的對象成為觀察目標,而被通知的對象稱為觀察者。觀察者模式定義了一種對象間的一種一對多依賴關系,使得每當一個對象狀態發生改變時,其相關的依賴對象可以得到通知並被自動更新。
21、狀態模式:一個對象在其內部的狀態發生改變時要改變它的行為,即狀態和行為不可以分離。
22、策略模式:定義一系列算法,並且進行封裝,這樣就可以讓它們進行相互替換。保證這些策略的一致性,使用一個抽象類做算法的定義。
23、模板方法模式:定義一個操作中算法的骨架,作為父類模板,在子類中不改變一個算法的結構只是進行重定義該算法的某些特定步驟完成具體算法。
24、訪問者模式:封裝一些施加於某種數據結構元素之上的操作,一旦操作被修改,可以保持結構不變,使我們可以在不改變各元素的類的前提下定義作用於這些元素的新操作。