原创 外觀模式

1類圖 2定義 要求一個子系統的外部與其內部的通信必須通過一個統一的對象進行。提供一個高層次的接口,使得子系統更易於使用。 3應用場景 3.1 爲一個複雜的子系統提供一個簡單的接口。子系統往往因爲不斷演化而變得越來越複雜,甚至可能被替換

原创 代理模式

1類圖 2定義 爲其他對象提供一種代理以控制對這個對象的訪問。 3應用場景 1. 當無法或不想直接訪問某個對象或訪問某個對象存在困難時可以通過一個代理對象來間接訪問,爲了保證客戶端使用的透明性,委託對象與代理對象需要實現相同的接口。 通

原创 命令模式

1類圖 2定義 2.1 將一個請求封裝成一個對象,從而讓用戶使用不同的請求吧=把客戶端參數化;對請求排隊或者紀錄請求日誌,已經支持可撤銷的操作。 3應用場景 3.1 需要抽象出待支持的動作,然後以參數的形式提供出來-類似於過程設計中的回

原创 享元模式

1類圖 2定義 使用共享對象可有效地支持大量的細粒度的對象。 3應用場景 3.1 系統有大量的相似對象。 3.2 細粒度的對象都具備較近似的外部形態,而且內部狀態與環境無關,也就是說對象沒有特定身份。 3.3 需要緩衝池的場景。 4Ti

原创 中介者模式

1類圖 2定義 中介者模式包裝了一系列對象相互作用的方式,使得這些對象不必相互明顯作用。從而使他們可以鬆散偶合。當某些對象之間的作用發生改變時,不會影響其他的一些對象之間的作用。保證這些作用可以彼此獨立的變化。中介者模式將多對多的相互作

原创 模板方法模式

1類圖 2定義 定義一個操作中的算法的框架,而將步驟延遲到子類中。使得子類可以不改變一個算法的結構即可重定義算法的某些特定步驟。 3應用場景 1 多個子類有公有的方法,並且邏輯基本相同時。 2 重要,複雜的算法,可以吧核心算法設計爲模板

原创 訪問者模式

1類圖 2定義 封裝一些作用與某些數據結構中的各元素的操作,它可以在不改變這個數據結構的前提下定義作用與這些元素的新操作。 3應用場景 1 對象結構比較穩定,但經常需要對此對象結構上定義新的操作。 2 需要對一個對象結構中的對象進行很多