中介者模式
中介物件來封裝行為,是各個物件的協調中心。使得各物件不需要相互引用就可以實現之間的互動。
觀察者模式 比如oc中常用的notification、delegate模式等.
命令模式
target-action
nsinvocation:把執行封裝成命令物件。建立nsinvocation物件時,通過nsmethodsignature的形式,提供目標物件,方法選擇器和引數返回值型別等,通過invove去完成整個呼叫過程。
nsmethodsignature *executemethod = [x methodsignatureforselector:];
nsinvocation *invocation = [nsinvocation invocationwithmethodsignature:executedmethod];
[invocation settarget:x];
[invocation setselector:];
[invocation setargument:&bool atindex:0];
nsundomanager:有兩個棧,當撤銷操作時,呼叫撤銷棧頂得操作物件,完成之後,彈出物件壓入恢復棧。
-(nsinvocation *)drawscribbleinvocation
-(nsinvocation *)undrawscibbleinvocation
-(void)executeinvocation:(nsinvocation *)invocation withundoinvocation:(nsinvocation *)undoinvocation
設計模式 三
行為型模式 重點關注物件之間的通訊 1 觀察者模式 1.1 定義 觀察者 observer 模式定義 只多個物件間存在一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴他的物件都得到通知並被自動更新,這種模式有時又稱作發布 訂閱模式 模型 檢視模式,它是行為型模式。1.2 結構角色 實現觀察者模...
設計模式 三 裝飾模式
動態地給乙個物件新增一些額外的職責 不重要的功能,只是偶然一次要執行 就增加功能來說,裝飾模式比生成子類更為靈活。建造過程不穩定,按正確的順序串聯起來進行控制。good 當你向舊的類中新增新 時,一般是為了新增核心職責或主要行為。而當需要加入的僅僅是一些特定情況下才會執行的特定的功能時 簡單點就是不...
設計模式 裝飾模式(三)
裝飾模式 軟體領域中的設計模式的重要性不言而喻。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型。雖然知道這些特性的定義但是並沒有做到真正的理解,這樣特性有什麼作用?用於什麼場合中等等問題,帶著疑問開始學習設計模式,主要參考 大話設計模式 和 設計模式 可復用物件導向軟體的基礎 兩本...