1,觀察者模式定義了物件之間一對多的關係
2,主題(也就是可觀察者)用乙個共同的介面來更新觀察者
3,觀察者和可觀察者之間用鬆耦合方式結合,可觀察者不知道觀察者細節,只知道觀察者實現了觀察者介面
4,使用此模式你可以從被觀察者處「推」或者「拉」資料,「推」的方式被認為更正確
5,有多個觀察者時,不可以依賴特定的通知次序
1,找出程式中變化的方面,然後將其和固定不變的方面相分離
2,針對介面程式設計,不針對實現程式設計
3,多用組合,少用繼承
1介面:
public inte***ce subject
public inte***ce observer
public inte***ce observer
2介面實現
public class weatherdata implements subject
//對觀察者的註冊和刪除
@override
public void registerobserver(observer o)
@override
public void removeobserver(observer o)
}//這裡是比較重要的,這是對觀察者進行廣播
@override
public void notifyobserver()
}public void measurementschanged()
public void setmeasurements(float temperature,float humidity,float pressure)}
public class currentconditionsdisplay implements observer,displayelement
@override
public void display()
@override
public void update(float temp, float humidity, float pressure) }
測試:
public class weatherstation }
headfirst設計模式
花了一周多一點的時間看完了headfirst的設計模式。看完之後有一種恍然大悟的感覺,仔細想想有覺得自己好像什麼也看懂。簡單說下對這本書的一點感悟吧,headfirst的書比較通俗易懂,之前看了四人幫的設計模式,看一半就有一種痛不欲生的感覺,自己水平有限,看不懂,也就沒在勉強自己了。對於模式其實簡單...
HeadFirst 設計模式 工廠模式
定義乙個建立物件的介面,由子類決定要例項化的類。工廠方法將類例項推遲到子類。依賴倒置。第一種方式是 class pizzastore public pizza orderpizza string type class pizzafactory pizza pizza null 將pizza這個例項提...
HeadFirst 設計模式 復合模式
模式通常被一起使用,並被組合在同乙個設計解決方案中。復合模式定義 復合模式在乙個解決方案中結合兩個或多個模式,以解決一般或重 生的問題。mvc,mode 模型 view 檢視 controller 控制器 分別是mvc的三個部分。使用mvc模式,目的是為了解耦,各模組部分只需要處理相應的內容。檢視層...