iOS中的一些設計模式

2021-06-26 05:19:32 字數 1438 閱讀 2709

**:

the most important design pattern: model-view-controller

理解model,view,controller之間的通訊方式

被**物件必須定義乙個屬性,用來儲存對**物件的引用(通常為weak)

同時應該定義乙個**物件要遵守的協議

protocol: enabling communication between objects not related by inheritance 協議

notification center: notifying interested observers of an event 通知中心

任何物件必須先向通知中心註冊後,才能觀察通知 。

註冊的時候,必須用selector指定通知傳送時呼叫的方法,該方法必須有乙個變數,即通知物件

觀察者也可以制定提交通知的物件。

通知中心與**訊息類似,都是在某事件發生時給任何物件傳送訊息。但是處理通知的方法與**方法不同,不能返回值。

通知是非同步而**是同步

kvo允許乙個物件觀察另外乙個物件的屬性,當屬性變化時通知觀察物件。

觀察物件可以知道屬性變化之前和之後的兩個值,如果屬性是一對多關係(陣列物件),那麼還可以獲得其中發生變化的物件。

與通知中心不同的是,kvo通知發生在被觀察物件和觀察物件之間,而通知中心可能有多個潛在的觀察者。

other framework designs based on design patterns

檢視層次結構

響應鏈

一些設計模式的例項

1.單例模式 class msginit str var singlecase function instance.init text return instance m1和m2顯示的是在同乙個盒子裡 var m1 singlecase hello var m2 singlecase world c...

設計模式 一些概念

為乙個相關或相依賴的物件家族提供統一的建立介面,並無需指定實體類。剛才是設計模式藝術中摘要中為抽象工廠模式所定義的問題 每個模式都描述著一種在我們的環境中一遍又一遍地出現的問題,並描述了對該問題的核心解決方案。以此方式你可以使用該方案上百萬次,而不需要重複的做同樣的事情 乙個設計模式的核心 命名,問...

之前看的一些設計模式

工廠方法是選擇單個產品的實現,雖然乙個類裡面可以有多個工廠方法,但是這些方法之間一般是沒有聯絡的,即使看起來像有聯絡。類似於控制反轉或依賴注入。本質是延遲到子類來選擇實現。package com.guo.task 工廠方法,建立c1,類似於從子類注入進來的途徑 author guo public a...