設(shè)計(jì)模式大概分為三種:1)創(chuàng)建型2)結(jié)構(gòu)型3)行為型.
創(chuàng)建型模式:(如何創(chuàng)建對象)
1.工廠模式(FACTORY METHOD PATTERN)提供了一個(gè)簡單的決策類,他根據(jù)提供的數(shù)據(jù)返回一個(gè)抽象基類的多個(gè)子類中的一個(gè).
2.抽象工廠模式(ABSTRACT FACTORY PATTERN)提供了一個(gè)創(chuàng)建并返回一系列相關(guān)對象的接口.他的主要目的是隔離要生成的具體類,這些類的實(shí)際類名隱藏才工廠類,客戶端根本不需要知道.
3.單件模式(SINGLETON PATTERN)是指某個(gè)類只能有一個(gè)實(shí)例,他提供了一個(gè)訪問該實(shí)例的全局訪問點(diǎn).
4.生成器模式(BUILDER PATTERN)將一個(gè)復(fù)雜對象的構(gòu)建與他的表示分開,這樣就能根據(jù)程序的需要?jiǎng)?chuàng)建不同的表現(xiàn)形式.他有點(diǎn)類似抽象工廠模式,兩者都返回由許多方法和對象組成的類,差別在于,生成器是根據(jù)提供給他的數(shù)據(jù)一步一步地創(chuàng)建一個(gè)復(fù)雜對象.
5.原型模式(PROTOTYPE PATTERN)是先實(shí)例化一個(gè)類,然后拷貝或克隆該類來創(chuàng)建新的實(shí)例,可以用公有方法進(jìn)一步修改.他能根據(jù)需要克隆類,在運(yùn)行時(shí)添加或刪除類,問題在于如果類早就存在,則不能改變他們來增加需要的克隆方法,另外,間接引用其他類的類也不能被真正克隆.

結(jié)構(gòu)型模式:(如何組合對象)
1.適配器模式(ADAPTER PATTERN)可以使一個(gè)類的接口匹配另外一個(gè)接口.
2.組合模式(COMPOSITE PATTERN)對象的組合,他允許你構(gòu)建一棵由各種相關(guān)類組成的樹,其中任何一個(gè)對象既可以是一個(gè)組合,也可以是一個(gè)葉子.
3.代理模式(PROXY PATTERN)通常是一個(gè)簡單對象,他代替一個(gè)比較復(fù)雜的稍后會(huì)調(diào)用的對象,而且實(shí)例化該對象代價(jià)比較高.
4.享元模式(FLYWEIGHT PATTERN)用于共享對象,其中的每一個(gè)實(shí)例都不包含自己的狀態(tài),而是將狀態(tài)存儲在外部.把一部分的類數(shù)據(jù)移到類外部,在執(zhí)行方法時(shí)將數(shù)據(jù)傳遞進(jìn)來.
5.外觀模式(FACADE PATTERN)對客戶屏蔽了復(fù)雜的子系統(tǒng)組件,并為一般用戶提供了一個(gè)簡單的程序接口,但他并沒有限制高級用戶在需要時(shí)使用深層的復(fù)雜的類.
6.橋接模式(BRIDGE PATTERN)將對象的接口和他的實(shí)現(xiàn)分離,這樣就可以獨(dú)立的改變他們.
7.裝飾模式(DECORATOR PATTERN)他可以動(dòng)態(tài)地給對象添加功能.他和外觀模式的區(qū)別在于外觀模式是將復(fù)雜系統(tǒng)隱藏在一個(gè)簡單接口,而裝飾模式通過包裝一個(gè)類來增加功能.

行為型模式:(如何在對象之間通信)
1.職責(zé)鏈模式(CHAIN OF RESPONSIBILITY PATTERN)把請求從鏈中的一個(gè)對象傳遞到下一個(gè)對象,直到請求被響應(yīng).鏈中的每個(gè)對象都是"自治"的,他對其他對象一無所知,只判斷他本身能不能滿足請求,不能的話就轉(zhuǎn)到下一個(gè),但你必須知道鏈中的最后一個(gè)對象是哪一個(gè).
2.命令模式(COMMAND PATTERN)用簡單的對象表示軟件命令的執(zhí)行.他把一個(gè)申請?zhí)囟ú僮鞯恼埱蠓庋b到一個(gè)對象,并給這個(gè)對象一個(gè)眾所周知的接口.
3.解釋器模式(INTERPRETER PATTERN)提供一種如何把語言元素包含在程序中的定義.
4.迭代器模式(ITERATOR PATTERN)提供一種順序訪問一個(gè)類中的一系列數(shù)據(jù)的方式,他允許使用一個(gè)標(biāo)準(zhǔn)接口順序訪問一個(gè)數(shù)據(jù)列表或集合,而又不需知道數(shù)據(jù)內(nèi)部表示細(xì)節(jié).
5.中介者模式(MEDIATOR PATTERN)定義了如何用一個(gè)對象簡化對象之間的通信,使對象之間不必互相了解.
6.備忘錄(MEMENTO PATTERN)定義了如何保存一個(gè)類實(shí)例的內(nèi)容以便以后能恢復(fù)他
7.觀察者模式(OBSERVER PATTERN)定義了一種把改動(dòng)通知給多個(gè)對象的方式.
8.狀態(tài)模式(STATE PATTERN)允許一個(gè)對象在其內(nèi)部狀態(tài)改變時(shí)修改他的行為.
9.策略模式(STRATEGY PATTERN)將算法封裝到類里.
10.模板方法模式(TEMPLATE METHOD PATTERN)提供了算法的一個(gè)抽象定義.
11.訪問者模式(VISITOR PATTERN)在不改變類的前提下,為類添加多種操作.