原创 訪問者模式

定義 訪問者(Visitor)模式將作用於某種數據結構中的各元素的操作分離出來封裝成獨立的類,使其在不改變數據結構的前提下可以添加作用於這些元素的新的操作,爲數據結構中的每個元素提供多種訪問方式。它將對數據的操作與數據結構進行分離

原创 狀態模式

定義 狀態(State)模式對有狀態的對象,把複雜的 “判斷邏輯” 提取到不同的狀態對象中,允許狀態對象在其內部狀態發生改變時改變其行爲。 狀態模式屬於對象行爲型模式。 要點 優點: 狀態模式將與特定狀態相關的行爲局部化到一個

原创 策略模式

定義 策略(Strategy)模式定義了一系列算法,並將每個算法封裝起來,使它們可以相互替換,且算法的變化不會影響使用算法的客戶,通過對算法進行封裝,把使用算法的責任和算法的實現分割開來,並委派給不同的對象對這些算法進行實現和管理

原创 觀察者模式

定義 觀察者(Observer)模式 又稱發佈-訂閱模式、模型-視圖模式,指多個對象間存在一對多的依賴關係,當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知並被自動更新。 觀察者模式屬於對象行爲型模式。 要點 優點:

原创 備忘錄模式

定義 備忘錄(Memento)模式又叫快照模式,在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態,以便以後當需要時能將該對象恢復到原先保存的狀態。 備忘錄模式屬於對象行爲型模式。 要點 優點: 提供了

原创 命令模式

定義 命令(Command)模式將一個請求封裝爲一個對象,使發出請求的責任和執行請求的責任分割開。這樣兩者之間通過命令對象進行溝通,這樣方便將命令對象進行儲存、傳遞、調用、增加與管理。 命令模式屬於對象行爲型模式。 要點 優點:

原创 過濾器模式

定義 過濾器模式(Intercepting Filter Pattern),又稱標準模式(Criteria Pattern),主要用於統一接收並過濾客戶端的請求,根據過濾器的選擇,將請求傳送給對應的目標處理程序。 過濾器模式屬於對

原创 解釋器模式

定義 解釋器(Interpreter)模式給分析對象定義一個語言,並定義該語言的文法表示,再設計一個解析器來解釋語言中的句子。也就是說,用編譯語言的方式來分析應用中的實例。這種模式實現了文法表達式處理的接口,該接口解釋一個特定的上

原创 責任鏈模式

定義 責任鏈(Chain of Responsibility)模式又稱職責鏈模式,是爲了避免請求發送者與多個請求處理者耦合在一起,將所有請求的處理者通過前一對象記住其下一個對象的引用而連成一條鏈;當有請求發生時,可將請求沿着這條鏈

原创 模板方法模式

定義 模板方法(Template Method)模式定義一個操作的算法骨架,而將算法的一些步驟延遲到子類中,使得子類可以不改變該算法結構的情況下重定義該算法的某些特定步驟。 模板方法模式屬於類行爲型模式。 要點 優點: 封裝了

原创 代理模式(靜態代理)

定義 **代理模式(Proxy)**爲一個對象提供一個替身或佔位符以控制對這個對象的訪問。訪問對象不適合或者不能直接引用目標對象,代理對象作爲訪問對象和目標對象之間的中介。 使用代理模式創建代理對象,讓代理對象(represent

原创 享元模式

定義 享元(Flyweight)模式又稱蠅量模式,主要運用共享技術來有效地支持大量細粒度對象的複用。主要用於減少創建對象的數量,以減少內存佔用和提高性能。 如果想要讓某個類的一個實例用來提供許多 “虛擬實例” ,就可以考慮使用享元

原创 Maven使用profile進行項目多環境配置切換

在項目開發時,我們本地搭建的開發dev環境,開發完成打包部署到服務器時,用到的是服務器prod環境。可以借用Maven的profiles、filters和resources,在運行或打包時指定選用的環境,實現不同環境自動使用各自環

原创 外觀模式

定義 外觀(Facade)模式是一種通過爲多個複雜的子系統提供一個統一的接口,而使這些子系統更加容易被訪問的模式。該模式對外有一個統一接口,外部應用程序不用關心內部子系統的具體的細節,這樣會大大降低應用程序的複雜度,提高了程序的可

原创 組合模式

定義 組合(Composite)模式:又稱作部分整體模式,它是一種將對象組合成樹狀的層次結構的模式,用來表示 “部分-整體” 的關係,使用戶對單個對象和組合對象具有一致的訪問性。 組合模式屬於對象結構型模式。 要點 組合模式的優