1. 程式人生 > >設計模式(35)-----設計模式階段性總結(一句話概括一個模式)

設計模式(35)-----設計模式階段性總結(一句話概括一個模式)

目錄:

設計模式(1)------初始設計模式(回撥函式) 

設計模式要從語義上出發,而不要從語法上出發,其實設計模式歸根結底就是多型的有計劃的組合。

 

 

設計模式(2)------行為型模式------觀察者設計模式

想想氣象站,根據天氣的變化動態的通知觀眾實時天氣。當一個物件的狀態改變時,通知另一個物件作出相應的改變,而中間的觀察和通知者就是主要的觀察者設計模式。出版者+訂閱者=觀察者模式

設計模式(3)------行為型模式------觀察者設計模式(jdk自帶)

 

 

 

設計模式(4)------結構型模式------裝飾者設計模式

想想inputStream它的鋪天蓋地的包裝類。加一層包裝就多一個功能。

 

 

設計模式(5)------結構型模式-----裝飾者設計模式(IO流的應用)

 

 

設計模式(6)------結構型模式------裝飾者設計模式(案例補充)

 

設計模式(7)-----建立型模式-----工廠設計模式(簡單工廠設計模式)

設計模式(8)-----建立型模式----- 工廠設計模式(工廠模式)

想想spring建立bean物件。一個產品類對應著一個產品工廠類。

設計模式(9)----- 建立型模式-----工廠設計模式(抽象工廠模式)

想想spring建立bean物件。一組產品對應著一個產品工廠類

設計模式(9)----- 補充spring中的工廠設計模式(手寫IOC容器)

 

 

設計模式(10)-----建立型模式----- 單例設計模式

想想springmvc的單例設定。記憶體中永遠有一個物件。

 

設計模式(11)-----行為型模式-----命令設計模式

設計模式(12)----- 行為型模式-----命令設計模式(升級----一個開關控制多條命令)

設計模式(13)----- 行為型模式-----命令設計模式(升級----加一個撤銷的命令)

設計模式(14)----- 行為型模式-----命令設計模式(升級----一個命令物件執行多條命令)

就是讓請求者和執行者之間解耦,主要通過命令來呼叫相應的動作。

 

 

設計模式(15)-----行為型模式-----策略設計模式

最基本的設計模式,就是在演算法之間隨意的切換,主要是多型。

 

 

設計模式(16)-----結構型模式-----介面卡設計模式

在實現了介面的內部呼叫其它的方法。偷換概念

 

 

設計模式(17)-----結構型模式-----外觀設計模式

就是留一個方法,統一呼叫裡面一組的資料。有點類似於抽象工廠設計模式。

 

 

設計模式(18)-----行為型模式-----模板設計模式

其實和外觀有點像,只不過模板沒有外觀那麼簡潔,可能4個方法是一套流程,但是隻有兩個是用模板的。

 

 

設計模式(19)-----行為型模式-----迭代器設計模式

可以迭代不同資料結構的資料。

 

 

 

設計模式(20)-----結構型模式-----組合設計模式

想想選單和選單項

 

 

設計模式(21)-----行為型模式-----狀態設計模式

每個狀態對應著不同的行為(類或者方法)

 

 

設計模式(22)-----結構型模式-----代理設計模式-----靜態代理

設計模式(23)-----結構型模式-----代理設計模式-----動態代理

找中介來處理這個問題。有點類似於中介模式。

 

 

設計模式(24)-----行為型模式-----責任鏈模式-----攔截器設計模式

想想攔截器,一層層的攔截就是責任鏈模式。

 

 

 

設計模式(25)-----建立型模式-----原型模式

就是clone

 

 

 

設計模式(26)-----建立型模式-----建造者模式

就是把建立複雜的物件簡單化

 

 

設計模式(27)-----結構型模式-----過濾器模式

通過過濾器可以吧想要的資訊過來過阿里,就是一個過濾器而已。

 

 

設計模式(28)-----結構型模式-----享元模式

減少建立物件的數目,它和單例不一樣的地方就是無論如何,記憶體中就一個物件這事單例,一個物件假如根據某個屬性來判斷是不是相同的話,可能呼叫了20次只建立了5個物件。

 

 

設計模式(29)-----行為型模式-----直譯器設計模式

是不是?是或者不是

 

 

設計模式(30)-----行為型模式-----中介者設計模式

假如現在有100個物件,他們互相之間都有聯絡,通過中介模式讓他們去掉聯絡,所有的聯絡都指向中介,這樣會條理清晰許多。

 

 

設計模式(31)-----行為型模式-----備忘錄設計模式

想想ctr+z,對以前操作的資訊做一個保留,比如存到map中或者list中,想去找到以前操作的資訊的話直接去取就行了

 

 

設計模式(32)-----行為型模式-----空物件設計模式

假如不為空到一個類中,假如為空到另一個類中,空和非空都實現相同的介面。但是相同的方法裡面處理的邏輯不一樣。

 

 

設計模式(33)-----行為型模式-----訪問者設計模式

想想許可權就行了,不同的訪問者可以設定不同的方法

 

 

設計模式(34)-----結構型模式-----橋接設計模式

主要是兩個層面的物件隨機的組合。比如說男生,女生一個層面,結婚,單身另一個層面,兩個層面可以隨機的組合。