HeadFirst 設計模式 第二章

拿氣象臺爲例,氣象臺的數據要展示在不同的顯示屏上,不同屏幕顯示的數據格式不盡相同。對於這種類似場景使用觀察者模式就沒差了。

氣象臺作爲擁有數據的一方,並不需要知道數據的具體的處理方式。而對於不同的顯示屏,則關注的是拿到數據並處理。並且這裏存在對象之間一對多映射關係,一個氣象臺對應多個顯示屏。

依據OO設計原則,我們要針對接口編碼,而不是具體實現。所以在這裏可以考慮抽象具體的顯示實現接口。氣象臺作爲被關注的主題,其所在意的是關注主題的觀察者(需要拿到數據的實體), 將氣象臺抽象爲Subject 接口,顯示屏則抽象爲Observer. 在Subject接口中維護了一個Observer列表。實現細節看下圖(截取自HeadFirst 設計模式):
在這裏插入圖片描述

這一章節關注的設計原則:

爲了實現交互對象之間的鬆耦合而努力。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章