原创 Objective C 迭代器模式

迭代器模式(Iterator),提供一種方法順序訪問一個聚合對象中各個元素,而又不暴露該對象的內部表示。    那麼一般在什麼時候纔會用迭代器模式呢?當你需要訪問一個聚集對象,而且不管這些對象是什麼都需要遍歷的時候,你就應該考

原创 Objective C中介者模式

中介模式(Mediator),用一箇中介對象來封裝一系列的對象交互。中介者使各對象不需要顯式地相互引用,從而使用其耦合鬆散,而且可以獨立地改變它們之間的交互。    下面先給出類結構圖,再做簡單解釋。    中介者模式

原创 Objective C 抽象工廠模式

抽象工廠模式(Abstract Factory),提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。  其實,我個人的理解是,抽象工廠模式顧名思義,就是抽象出一個接口層,然後結合工廠模式。呵呵,聽起來跟沒說一

原创 Objective C橋接模式

合成/聚合複用原則(CAPP),儘量使用合成/聚合,儘量不要使用類繼承。    合成(Composition,也有翻譯成組合)和聚合(Aggregation)都是關聯的特殊種類。聚合表示一種弱的‘擁有’關係,體現的是A對象可以包含

原创 Objective C 簡單工廠模式

正如此模式的名稱一樣,簡單工廠模式基本上是所有設計模式裏最簡單的一種,類與類之間的關係一目瞭然。這次我就用很多地方經常舉的例子--計算器,來說明這個模式。首先給大家展示一下類之間的結構圖: 通過這張結構圖,可以清晰的看到

原创 Objective C 狀態模式

 狀態模式(State),當一個對象的內在狀態改變時允許改變其行爲,這個對象看起來像是改變了其類。    其實,狀態模式主要解決的是當控制一個對象狀態轉換的條件表達式過於複雜的情況。把狀態的判斷邏輯轉移到表示不同狀態的一系列類

原创 Objective C 備忘錄模式

備忘錄(Memento):在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態。這樣以後就可將該對象恢復到原先保存的狀態。    定義看起來搞的很專業,其實就是保存上一個狀態,以便日後恢復用。好比是在玩遊

原创 Objevtive C 訪問者模式

訪問者模式(Visitor),表示一個作用於某對象結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。     訪問者模式類結構圖。    訪問者模式適用於數據結構相對穩定的系統,它把

原创 Objective C 命令模式

命令模式(Command),將一個請求封裝爲一個對象,從而使你可用不同的請求對客戶進行參數化;對請求排隊或紀錄請求日誌,以及支持可撤銷的操作。    那麼讓我們簡要的說一下命令模式的特點。 它能比較容易地設計一個命令隊列

原创 Objective C 觀察者模式

觀察者模式定義了一種一對多的依賴關係,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態發生變化時,會通知所有觀察者對象,使它們能夠自動更新自己。    下面還是先給大家展示一下類關係圖。    其實這個結

原创 Objective C 單例模式

顧名思義,單例模式的特點就是保證一個類僅有一個實例。因爲這個模式只和一個類有關,沒有類與類之間的關係,所有就不給出圖示了。那麼還是先說一下基本的定義。 單例模式(Singleton),保證一個類僅有一個實例,並提供一個訪問它的全局

原创 Objective C 解釋器模式

首先介紹一下解釋器模式適合解決哪類問題。    其實,解釋器模式需要解決的問題是,如果一種特定類型的問題發生的頻率足夠高,那麼可能就值得將該問題的各個實例表述爲一個簡單語言的句子。這樣就可以構建一個解釋器,該解釋器通過解釋這些句子

原创 Objective C 組合模式

 組合模式(Composite),將對象組合成樹形結構以表示‘部分-整體’的層次結構。組合模式使得用戶對單個對象和組合對象的使用具有一致性。    組合模式的適用場合是,一般當你發現需求中是體現部分與整體層次的結構時,以及你希

原创 Objective C 建造者模式

如果你需要將一個複雜對象的構建於它的表示分離,使得同樣的構建過程可以創建不同的表示的意圖時,那我們就需要這個模式,建造者模式又叫生成器模式。建造者模式可以將一個產品的內部表象與產品的生成過程分割開來,從而可以使一個建造過程生成具有不同

原创 Objective C 適配器模式

適配器模式(Adapter),將一個類的接口轉換成客戶希望的另外一個接口。Adapter模式使得原本由於接口不兼容而不能一起工作的那些類可以一起工作。    適配器模式主要解決了什麼問題呢?    答:系統的數據和行爲都正