原创 設計模式-行爲模式之Mediator

更多請移步我的博客 意圖 Meditor是行爲模式的一種,允許你定一個對象來封裝一些對象的關聯關係,以使這些對象相互獨立。 問題 你有一個對話框用來編輯用戶的配置。它是由TextEdit、Checkboxes、Button等組成的表單。

原创 設計模式-行爲模式之Observer

更多請移步我的博客 意圖 Observer是行爲模式的一種,允許你定義對象間一對多的關係,以便一個對象狀態改變後,它的依賴者可以被通知並可以自動更新。 問題 假設你有兩個對象,Customer和Store。商店採購了一批新產品,一些客戶對

原创 設計模式-行爲模式之Memento

更多請移步我的博客 意圖 Memento是行爲模式的一種,他允許你在不暴露對象內部結構的情況下捕獲其內部狀態,以便稍後對象可以返回到這個狀態。 問題 假設你在寫一個文本編輯器。核心邏輯放在Editor主類中。另外一些特性,像文本格式化,內

原创 設計模式-結構模式之State

更多請移步 我的博客 意圖 State是行爲模式的一種,它允許你在對象內部狀態發生變化時改變其行爲。這個對象會改變它的類。 問題 狀態模式和有限狀態機很相似。 它主要的思想是程序是幾個狀態之一,這些狀態相互關聯。狀態的數量和它們之間的轉換

原创 設計模式-行爲模式之Command

更多請移步我的博客 意圖 Command(命令)是一種行爲模式,讓你可以把請求轉換到單獨的對象,可以用來把不同的請求參數化,排隊或者記錄請求,並且支持撤銷操作。 問題 假設你在做一個新的文本編輯器。你創建了一個Button類,可以被用做工

原创 設計模式-創建模式之Prototype(Clone)

更多請移步我的博客 目的 Prototype(也叫做Clone)是創建型模式的一種,允許你通過複製現有的對象來生成新的對象,而不會影響現有對象的內部。 問題 你有一個對象並且想要創建一個副本。你該怎麼做?首先,你需要創建同樣class的一

原创 設計模式-結構模式之小結

更多請移步: 我的博客 目的 結構設計模式使的我們簡單快速的建立類的層級及不同類之間的關係,明確不同層級間的責任和邊界,讓各個模塊、系統間相互獨立並很好的協作。 概覽 Adapter模式 適配器的目的是使不兼容接口間的可正常進行協作,它允

原创 設計模式-創建模式之Builder

更多請移步我的博客 意圖 Builder是創建模式的一種,讓你可以使用相同的構建過程生成不同類型和對象的表示形式。BUilder允許一步一步構建複雜對象。 問題 假設有一個複雜對象需要一步一步的初始化許多字段和嵌套對象。這些代碼通常放在一

原创 譯-設計模式-結構模式之Proxy

更多請移步: 我的博客 意圖 Proxy是結構模式的一種,它能夠讓你爲另外一個對象提供一個替身或者佔位符來控制對它的訪問。 問題 爲什麼要控制對對象的訪問?比如:你有一個需要消耗大量系統資源的對象。你時不時會用到它,但不是一直使用。 因此

原创 設計模式-行爲模式之Chain-Of-Responsibility

更多請移步我的博客 意圖 責任鏈(Chain Of Responsibility)是一種行爲模式,通過給多個對象一個機會去處理請求的的方式來避免請求發送者和接受者的耦合。責任鏈接收對象並且沿着鏈條傳遞它,直到一個對象來處理它。 問題 假設

原创 設計模式-行爲模式之Template Method

更多請移步:我的博客 意圖 Template Method 時行爲模式的一種,讓你定義一個算法的骨架,允許子類重新定義在不改變結構的情況下重新定義算法的某些步驟。 問題 假設你正在寫一個挖掘辦公文檔數據的應用程序。用戶想要輸入各種格式的文

原创 設計模式-創建模式之Factory Method

更多請移步: 我的博客 目的 Factory Method是創建模式的一種,他在父類中提供一個用來創建對象的接口,但是允許子類修改創建對象的類型。 問題 假設你有一個後勤管理應用。應用的第一個版本只需要處理卡車這種運輸方式,所以,你有一個

原创 譯-設計模式-結構模式之Flyweight

更多請移步: 我的博客 目的 Flyweight是結構模式的一種,通過在多個對象見共享對象狀態的通用部分而不是讓各個對象獨自持有的方式來讓你在可用的RAM中裝入更多的對象。 問題 在長時間工作後想要找些樂趣,你決定寫一個簡單的視頻遊戲。玩