原创 設計模式3-7:觀察者模式

What 當對象間存在一對多關係時,則使用觀察者模式(Observer Pattern)。比如,當一個對象被修改時,則會自動通知它的依賴對象。 定義對象間的一種一對多的依賴關係,當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知並被自

原创 設計模式3-6:備忘錄模式

What 備忘錄模式(Memento Pattern)保存一個對象的某個狀態,以便在適當的時候恢復對象。 在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態。 Why 所謂備忘錄模式就是在不破壞封裝的前提下,捕獲一個

原创 設計模式3-5:中介者模式

What 中介者模式(Mediator Pattern)是用來降低多個對象和類之間的通信複雜性。這種模式提供了一箇中介類,該類通常處理不同類之間的通信,並支持鬆耦合,使代碼易於維護。 用一箇中介對象來封裝一系列的對象交互,中介者使各對象不需

原创 設計模式3-4:迭代器模式

What 迭代器模式(Iterator Pattern)是 Java 和 .Net 編程環境中非常常用的設計模式。這種模式用於順序訪問集合對象的元素,不需要知道集合對象的底層表示。 提供一種方法順序訪問一個聚合對象中各個元素, 而又無須暴露

原创 設計模式2-8:代理模式

What 在代理模式(Proxy Pattern)中,一個類代表另一個類的功能。 在代理模式中,我們創建具有現有對象的對象,以便向外界提供功能接口。 爲其他對象提供一種代理以控制對這個對象的訪問。 Why 在直接訪問對象時帶來的問題,比如說

原创 設計模式2-5:裝飾器模式

What 裝飾器模式(Decorator Pattern)允許向一個現有的對象添加新的功能,同時又不改變其結構。它是作爲現有的類的一個包裝。 這種模式創建了一個裝飾類,用來包裝原有的類,並在保持類方法簽名完整性的前提的下,提供了額外的功能。

原创 設計模式2-4:組合模式

What 組合模式(Composite Pattern),又叫部分整體模式,是用於把一組相似的對象當作一個單一的對象。組合模式依據樹形結構來組合對象,用來表示部分以及整體層次。它創建了對象組的樹形結構。 這種模式創建了一個包含自己對象組的類

原创 設計模式3-1:責任鏈模式

What 顧名思義,責任鏈模式(Chain of Responsibility Pattern)爲請求創建了一個接收者對象的鏈。這種模式給予請求的類型,對請求的發送者和接收者進行解耦。 在這種模式中,通常每個接收者都包含對另一個接收者的引用

原创 設計模式2-3:過濾器模式

What 過濾器模式(Filter Pattern)或標準模式(Criteria Pattern)允許開發人員使用不同的標準來過濾一組對象,通過邏輯運算以解耦的方式把它們連接起來。它結合多個標準來獲得單一標準。 Why 就是在不增加耦合度的

原创 設計模式3-3:解釋器模式

What 解釋器模式(Interpreter Pattern)提供了評估語言的語法或表達式的方式。這種模式實現了一個表達式接口,該接口解釋一個特定的上下文。這種模式被用在 SQL 解析、符號處理引擎等。 給定一個語言,定義它的文法表示,並定

原创 設計模式3-2:命令模式

What 命令模式(Command Pattern)是一種數據驅動的設計模式。請求以命令的形式包裹在對象中,並傳給調用對象。調用對象尋找可以處理該命令的合適的對象,並把該命令傳給相應的對象,該對象執行命令。 將一個請求封裝成一個對象,從而使

原创 設計模式2-7:享元模式

What 享元模式(Flyweight Pattern)主要用於減少創建對象的數量,以減少內存佔用和提高性能。它提供了減少對象數量從而改善應用所需的對象結構的方式。 享元模式嘗試重用現有的同類對象,如果未找到匹配的對象,則創建新對象。我們將

原创 設計模式2-6:外觀模式

What 外觀模式(Facade Pattern)隱藏系統的複雜性,並向客戶端提供了一個客戶端可以訪問系統的接口。它向現有的系統添加一個接口,來隱藏系統的複雜性。 這種模式涉及到一個單一的類,該類提供了客戶端請求的簡化方法和對現有系統類方法