Head First 設計模式2 觀察者模式

2021-06-23 03:16:50 字數 1155 閱讀 5938

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模式,目的是為了解耦,各模組部分只需要處理相應的內容。檢視層...