中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

觀察者模式講解-創(chuàng)新互聯(lián)

觀察者模式
  • 定義
    • 關(guān)系
    • 依賴
    • 關(guān)系
    • 總結(jié)
    • 我的理解

來源于B站極客架構(gòu)師老吳大佬

屬于行為型模式

交城ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!定義

Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
—— Gof《Design Patterns: Elements of Reusable Object-Oriented Software》
定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并被自動更新。
—Gof《設(shè)計模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)》

關(guān)系

依賴關(guān)系在觀察者模式的重要程度,還體現(xiàn)在,觀察者設(shè)計模式還有另外一個別名(觀察者模式有好幾個名字,我們后面都會提到),就叫“Dependents”

依賴

依賴關(guān)系,最重要的是搞清楚,誰是依賴方,誰是被依賴方,在沒有解耦合的依賴關(guān)系中,依賴方不能獨立存在,被依賴方則反之。
所有研究依賴關(guān)系的設(shè)計模式,宗旨都包括解耦合依賴雙方,干掉依賴關(guān)系,或者降低依賴度。從面向?qū)ο蟮慕嵌瓤?,對象和對象之間,一個對象調(diào)用了另外一個對象的方法,或者訪問了另外對象的屬性,這兩個對象之間就存在依賴關(guān)系。
怎么樣的依賴關(guān)系?
再給依賴關(guān)系加個定語,“一對多”的依賴關(guān)系
什么是“一對多”我就不多說了,這里面要強調(diào)的,就是一對多里面的“一”,往往是被依賴方,“多”則是依賴方。

關(guān)系

誰的變化?對象狀態(tài)的變化,也就是對象屬性的變化。
被依賴方對象狀態(tài)的變化,變化的后果呢,就是所有依賴于它的對象,都會得到通知,并自動更新。

總結(jié)

總結(jié)一下,觀察者模式,就是定義對象之間的依賴關(guān)系,當(dāng)被依賴方(也就是“一”方)狀態(tài)發(fā)生變化時,所有依賴方(也就是“多”方),都會得到通知并被自動更新。
這個定義后面幾個字“并被自動更新”,不太嚴(yán)謹(jǐn),依賴方都會得到通知一般情況下是沒問題的,但是,*是否被自動更新就不得而知了,是否需要處理這個通知,這個要看依賴方的業(yè)務(wù)需求。

我的理解

觀察者模式就是’一’更新了,依賴’一’的’多’就要去更新。

我們以前寫代碼就是硬編碼,有幾個服務(wù)層去處理請求,我們就調(diào)幾個方法去處理請求。而有了觀察者模式之后我們就可以講處理方法(服務(wù)層)放到一個集合里面,去遍歷集合里面的元素去處理請求,從而降低依賴關(guān)系,做到解耦,看起來整潔清晰。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

文章名稱:觀察者模式講解-創(chuàng)新互聯(lián)
URL分享:http://www.rwnh.cn/article0/cchpoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、虛擬主機、營銷型網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計、企業(yè)網(wǎng)站制作、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
磐石市| 涪陵区| 德格县| 巴楚县| 温宿县| 潍坊市| 宁津县| 江永县| 乌拉特中旗| 临安市| 泗阳县| 利辛县| 民丰县| 本溪市| 清水河县| 澄迈县| 右玉县| 滨海县| 平度市| 桃源县| 上蔡县| 玛曲县| 涟水县| 深水埗区| 同仁县| 祥云县| 丁青县| 巴东县| 深圳市| 永春县| 河北区| 阜城县| 郁南县| 应用必备| 青铜峡市| 西乌珠穆沁旗| 汕头市| 青龙| 垦利县| 宁海县| 青阳县|