為了監聽屬性的變化,swift提供了屬性觀察者。屬性觀察者能夠監聽儲存屬性的變化,即便變化前後的值相同,它們也能監聽到。
屬性觀察者主要有以下兩個:
屬性觀察者的語法格式如下:
物件導向型別 型別名
didset(舊值)
}
}
屬性觀察者的語法格式比計算屬性要混亂。
屬性觀察者可以在類和結構體中使用,不能在列舉中使用。
示例**如下:
class employee
didset(oldnamevalue)
} var job: string?
var salary: double = 0
var dept: department?
}
struct department
didset
} var name: string = "research"
}
var emp = employee()
emp.no = 100
emp.name = "smith" ⑬
var dept = department()
dept.no = 30 ⑭
上述**執行結果如下:
員工name新值:smith
員工name舊值:tony
部門編號新值:30
部門編號舊值:10
swift學習記錄(計算屬性和屬性觀察者)
計算屬性不直接儲存值,而是提供乙個 getter 和乙個可選的 setter,來間接獲取和設定其他屬性或變數的值。基本語法 class struct enum 型別名 set 新屬性值 示例 class rect set newy var area int var rect rect rect.y ...
觀察者模式Swift版
1 觀察者模式定義?當乙個物件狀態發生改變,所有依賴於他訂閱者都會發生改變 收到狀態改變的通知 2 觀察者模式 應用場景?場景一 關聯場景 場景二 事件多級觸發 場景三 跨系統訊息互動場景 3 觀察者模式 角色劃分?四個角色?角色一 被觀察者 目標物件 抽象 角色二 具體被觀察者 目標物件 角色三 ...
python觀察者模式 python 觀察者模式
python 觀察者模式 前言e 寫的倉促就不截uml類圖了,書本chapter10,p313能看到圖 一旦觀察的主題有更新,就會通知到觀察者們,下面的例子是最簡單的乙個觀察者範例,假設這是一群投機分子密切關注 軍 火 倉庫的產品與數量變動 class inventory def init self...