自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

設(shè)計(jì)模式思想換位中的另類觀察者

開發(fā) 項(xiàng)目管理
本文將談?wù)勴?xiàng)目管理中的設(shè)計(jì)模式思想換位,重點(diǎn)講述的是其中的另類觀察者。并結(jié)合氣象局實(shí)例,來為大家講解不同的數(shù)據(jù)使用策略。

觀察者模式(Observers)  定義了對象之間的一對多依賴,這個一來,當(dāng)一個對象改變狀態(tài)時,它所有的依賴者都會收到通知并自動更新,主題和觀察者定義了一對多的關(guān)系 觀察者依賴于主題,只要主題狀態(tài)一有改變,觀察者就會接受到通知 根據(jù)通知的風(fēng)格。

當(dāng)兩個對象之間松耦合,它們依然可以交互,但不太清除彼此的細(xì)節(jié)。觀察者模式提供了一種對象設(shè)計(jì),讓主題和觀察者之間松耦合。主題只知道觀察者實(shí)現(xiàn)了某個接口(也就是Observer接口)主題不需要知道觀察者的具體類是誰,做了些什么或其他的任何細(xì)節(jié)。任何時候我們可以添加新的觀察者。因?yàn)橹黝}唯一依賴的東西是一個實(shí)現(xiàn)Observer接口的對象列表。

松耦合的設(shè)計(jì)之所以能讓我們建立有彈性的OO系統(tǒng),能夠應(yīng)對變化,是因?yàn)閷ο笾g的互相依賴降到了***。所以我們?yōu)榱私换ο笾g的松耦合設(shè)計(jì)而在努力。

筆者學(xué)習(xí)過很多觀察者模式的文章,也在項(xiàng)目中使用過,下面我們通過一個Dome慢慢的認(rèn)識體會設(shè)計(jì)模式的思想。

Demo - 氣象監(jiān)測應(yīng)用系統(tǒng)

氣象觀測局專利申請?jiān)赪eatherData對象中,由WeatherData負(fù)責(zé)追蹤天氣狀態(tài)。成功以后在氣象監(jiān)測局顯示以供廣大網(wǎng)民查詢并提供接口給大型網(wǎng)站顯示,這時候訪問關(guān)系是,

 

注意箭頭的方向,訪問取得數(shù)據(jù)的壓力都壓在氣象局中,久而久之根據(jù)訪問量的遞增氣象局不定的添加服務(wù)器,負(fù)載均衡,緩沖等技術(shù)解決。

而知,有時候,如果您發(fā)現(xiàn)項(xiàng)目中后期維護(hù)的問題太多,那就回到起點(diǎn)從新思考問題。每次網(wǎng)民通過各大合作方網(wǎng)站訪問數(shù)據(jù),各大合作方又來訪問氣象局得到數(shù)據(jù)。這無形中讓壓力增加。那么我們?nèi)绾螌毫Ψ植?,減少無謂的浪費(fèi)。

這時候讓我們回到觀察者模式中的思想,那就是“你們不要來訪問我,如果我的數(shù)據(jù)發(fā)生改變我會通知你們”。講到這里請看新的設(shè)計(jì)關(guān)系圖:

 

看看此時的關(guān)系設(shè)計(jì)圖表中,合作方不再從氣象局獲取到數(shù)據(jù),而使用本地?cái)?shù)據(jù)儲存方式,當(dāng)氣象局?jǐn)?shù)據(jù)發(fā)生變化更新各合作方,則將各個合作方的數(shù)據(jù)更新到***,而氣象局的數(shù)據(jù)是主題,而合作方便是也就是觀察者,兩方便是一對多的關(guān)系,氣象局不需要知道合作方取了數(shù)據(jù)如何使用,只要在獲得到新的數(shù)據(jù)后更新即可。

接近尾聲的時候,這次就不貼代碼了,講到這里實(shí)現(xiàn)起來該DOME肯定沒問題,這次雖然短短的些字,但確實(shí)本人不才些經(jīng)驗(yàn)和悟性,其實(shí)我這整篇文章想表達(dá)的是,設(shè)計(jì)模式表達(dá)的一種思想,是從項(xiàng)目業(yè)務(wù)邏輯中和后期變化中去思考。

【編輯推薦】

  1. 軟件項(xiàng)目管理總體流程設(shè)計(jì)
  2. 項(xiàng)目組合管理中的十大***實(shí)踐
  3. 應(yīng)用軟件項(xiàng)目的配置管理實(shí)例
責(zé)任編輯:彭凡 來源: ITPUB
相關(guān)推薦

2020-10-26 08:45:39

觀察者模式

2022-01-29 22:12:35

前端模式觀察者

2021-07-08 11:28:43

觀察者模式設(shè)計(jì)

2013-11-26 17:09:57

Android設(shè)計(jì)模式

2015-11-25 11:10:45

Javascript設(shè)計(jì)觀察

2024-02-18 12:36:09

2021-09-06 10:04:47

觀察者模式應(yīng)用

2021-01-25 05:38:04

設(shè)計(jì)原理VueSubject

2011-04-29 09:22:22

2024-12-03 09:34:35

觀察者模 式編程Javav

2012-08-27 10:52:20

.NET架構(gòu)觀察者模式

2021-03-29 07:14:28

Spring觀察者模式

2022-05-09 10:50:13

觀察者模式設(shè)計(jì)模式

2024-06-04 13:11:52

Python行為設(shè)計(jì)模式開發(fā)

2021-06-03 12:26:28

觀察者模式面試阿里P6

2021-09-29 19:45:24

觀察者模式Observable

2022-07-13 08:36:57

MQ架構(gòu)設(shè)計(jì)模式

2021-06-07 20:03:04

監(jiān)聽器模式觀察者

2021-04-14 14:40:37

forSpringJava

2022-11-15 07:35:50

Spring事件觀察者模式
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號