Home
R
Cancel

[閱讀筆記][Design Pattern] Ch17.轉接器模式(Adapter)

轉接器模式(Adapter) 轉接器模式(Adapter),將一個類別的介面轉換成客戶希望的另一個介面。Adapter模式使得原本由於介面不相容而不能一起工作的那些類別可以一起工作。 主要解決什麼? 簡單來說,就是需要的東西就在前面,但卻不能使用,而短時間又無法改造它,於是我們就想辦法轉接它。 在軟體開發中,系統的資料和行為都正確,但介面不符時,我們應該考慮用轉接器模式,目的是使控制範...

[閱讀筆記][Design Pattern] Ch16.狀態模式(State)

狀態模式(State) 狀態模式(State)主要是解決當控物一個物件狀態轉換的條件運算式過於複雜時的情況。把狀態的判斷邏輯移到表示不同狀態的一系列類別當中,可以把複雜的判斷邏輯簡化。 如果這個狀態判斷很簡單,那就沒有必要用「狀態模式」了。 結構 State 抽象狀態類別,定義一個介面以封裝與Context的一個特定狀態相關的行為。 ConcreteState 具體狀態,每一...

[閱讀筆記][Design Pattern] Ch15.抽象工廠模式(Abstract Factory)

資料庫存取 用工廠方法模式 用抽象工廠模式 用簡單工廠來改進抽象工廠 用反射+抽象工廠 用反射+設定檔 設計模式中的工廠模式(Factory Design pattern)是一個比較常用的創建型設計模式,其中可以細分為三種:簡單工廠(Simple Factory)、工廠方法(Factory Method)和抽象工廠(Abstract Factory)。那麼三者有...

[閱讀筆記][Design Pattern] Ch14.觀察者模式(Observer)

觀察者模式(Observer) 觀察者模式(Observer)又叫做「發佈-訂閱(Publish/Subscribe)模式」。 觀察者模式(Observer)定義了一種一對多的依賴關係,讓多個觀察者物件同時監聽某一個主題物件。這個主題物件在狀態發生變化時,會通知所有觀察者物件,使它們能夠自動更新自己。 觀察者的特點與動機 將一個系統分割成一系統相互協作的類別有一個很不好的副作用,那就...

[閱讀筆記][Design Pattern] Ch13.建造者模式(Builder)

建造者模式(Builder) 流程的抽象 如果你需要將一個複雜物件的構造與它的表示分離,使得同樣的構建過程可以建立不同的表示之意圖時,我們需要應用於一個設計模式「建造者模式(Builder)」,又叫「產生器模式」。 建造者模式可以將一個產品的內部表像與產品的產生過程分割開來,從而可以使一個建造過程產生具有不同之內部表象的產品物件。 如果我們用了建造者模式(Builder),那麼用戶就...

[閱讀筆記][Design Pattern] Ch12.外觀模式(Facade)

外觀模式(Facade) 「外觀模式(Facade)」又叫「門面模式」。 即使沒有聽過「外觀模式」,也很有可能常常用,因為它完美地體現了「依賴倒轉原則」和「迪米特法則」的思想 外觀模式(Facade)結構 Fancade外觀類別:知道哪些子系統類負責處理請求,將客戶的請求代理給適當的子系統物件。 SubSystem Classes子系統類別集合:實現子系統的功能,處理Fan...

[閱讀筆記][Design Pattern] Ch11.迪米特法則(LoD)

迪米特法則(LoD, Law of Demeter) 迪米特法則(LoD)也叫「最少知識原則」,如果兩個類別不必彼此直接通信,那麼這兩個類別就不應當發生直接的相互作用。如果其中一個類別需要調用另一個類別的某一個方法的話,可以透過第三者轉發這個調用。 「迪米特法則」首先強調的前提是「在類別的結構設計上,每一個類別都應當儘量降低成員的使許可權」,也就是說,一個類別包裝好自己的private狀...

[閱讀筆記][Design Pattern] Ch10.範本方法模式(Template)

範本方法模式(Template) 當我們要完成某一細節層次一致的一個過程或一系列步驟,但其個別步驟在更詳細的層次上的實現可能不同時,我們通常考慮用「範本方法模式」來處理。 範本方法模式,定義一個操作中的演算法的骨架,而將一些步驟延遲到子類別中。範本方法使得子類別可以不改變一個演算法的結構即可重定義該演算法的某些特定步驟。 範本模式結構 AbstractClass抽象類別:...

[閱讀筆記][Design Pattern] Ch9.原型模式 Prototype (深淺複製 MemberwiseClone())

原型模式 Prototype 原型模式(Prototype):用原型實例指定建立物的種類,並且透過拷貝這些原型建立新的物件。 「原型模式(Prototype)」其實就是從一個物件再建立另一個可訂製的物件且不需要知道任何建立的細節。 原型模式(Prototype)結構 Client用戶端:讓一個原型複製自身,從而建立一個新的物件 Prototype 原型類別:聲明一個複製自身的...

[閱讀筆記][Design Pattern] Ch8.工廠方法模式 Factory Method

工廠方法模式 Factory Method 工廠方法模式 (Factory Method):定義一個用於建立物件的介面,讓子類決定實體化哪一個類別。工廠方法使一個類別的實例化延遲到其子類別。 優點 由於使用了多型性,工廠方法模式保持了簡單工廠模式的優點。 缺點 缺點是:由於每加一個產品,就需要加一個產品工廠的類別,增加了額外的開發量。 怎樣才能避免修改用戶端的程式碼?利用「反射...