Home
R
Cancel

[閱讀筆記][Design Pattern] Ch21.獨體模式(Singleton)

獨體模式(Singleton) 獨體模式(Singleton),保證一個類別僅有一個實體,並提供一個存取它的全域訪問點。 通常我們可以讓一個總體變數使得一個物件被存取,但它不能防止你實體化多個物件。一個最好的方法就是,讓類別自身負責保存它唯一的實體。這個類別可以保證沒有其他實體可以被建立,並且它可以提供一個存取該實體的方法。 實體化其實就是new的過程,如果不對建構式做改動的話,...

[閱讀筆記][Design Pattern] Ch20.迭代器模式(Iterator)

迭代器模式(Iterator) 迭代器模式(Iterator),提供一種方法依序存取一個聚合物件中各個元素,而又不暴露該物件的內部結構。 foreach in就是實現IEnumerator、IEnumerable這兩個介面來實踐迴圈走遍。 .NET的迭代器實現 實際使用當中是不需要這麼麻煩的,因為.NET框架已經為你準備好了相關介面,你只需去實現就好。 IEnumerato...

[閱讀筆記][Design Pattern] Ch19.組合模式(Composite)

組合模式(Composite) 組合模式(Composite),將物件組合成樹形結構以表示「部分-整體」的層次結構。組合模式(Composite)使得用戶對單個物件和組合物件的使用具有一致性。 結構 Component 組合中的物件宣告介面,在適當情況下,實現所有類別共有介面的預設行為。宣告一個介面用於使用和管理Component的子部分。 Leaf 在組合中表示葉節點物件,...

[閱讀筆記][Design Pattern] Ch18.備忘錄模式(Memento)

備忘錄模式(Memento) 備忘錄模式(Memento),在不破壞封裝性的前提下,捕獲一個物件的內部狀態,並在該物件之外保存這個狀態。這樣以後就可將該物件恢復到原先保存的狀態。 使用場合? 備忘錄模式(Memento)比較適用於功能比較複雜的,但需要維護或記錄屬性歷史的類別,或者需要保存的屬性只是眾多屬性中的一小部分時,Originator可以根據保存的Memento資訊還原到前一狀...

[閱讀筆記][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...