日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

小菜学设计模式——观察者模式

發(fā)布時(shí)間:2023/12/4 asp.net 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 小菜学设计模式——观察者模式 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>


背景? ?

????上一次去看電影院看電影,半旁邊的妹子說(shuō)只要掃一掃就能免費(fèi)領(lǐng)取爆米花一份,你說(shuō)我怎么躲得過(guò)妹子的招數(shù)呢?所以拿起我的手機(jī),掃一掃,注冊(cè)會(huì)員,ok 領(lǐng)取爆米花。時(shí)間過(guò)去了,我發(fā)現(xiàn)我的手機(jī)怎么老是收到一些亂七八糟的信息,一旦有什么大小事我都會(huì)收到信息,你可知道我是拒絕的。恩,這里就說(shuō)說(shuō),觀察者模式,因?yàn)槲业氖謾C(jī)號(hào)碼已經(jīng)成為他們發(fā)消息的接收者,或說(shuō)監(jiān)聽(tīng)器、或說(shuō)觀察者。


1、使用意圖? ?

????當(dāng)一個(gè)對(duì)象改變的同時(shí)需要改變其他對(duì)象時(shí),觀察者模式似乎很受用。


2、生活實(shí)例? ?

????飯點(diǎn)一到,所有同事包括我立刻放下手中的活,有看NBA的、有睡覺(jué)的,有直接去食堂排隊(duì)等飯吃的。似乎這里少了一個(gè)通知的過(guò)程,呵呵,不要緊。

3、Java 例子(框架、JDK 、JEE)

? ? 因?yàn)橛^察者的本質(zhì)就是監(jiān)聽(tīng)器,所以使用監(jiān)聽(tīng)器最多的當(dāng)然是Swing或AWT,比如一個(gè)按鈕被點(diǎn)擊會(huì)觸發(fā)click事件,鼠標(biāo)移動(dòng)會(huì)觸發(fā)mouseover事件等,事件觸發(fā),就會(huì)通知對(duì)應(yīng)觀察者(監(jiān)聽(tīng)器)

4、模式類圖? ??

  • 抽象主題角色(Subject):定義一個(gè)接口,聲明作為主題角色應(yīng)該具備的方法(對(duì)觀察者對(duì)象的增刪改之類的方法聲明)。

  • 主題角色(Concrete Subject):實(shí)現(xiàn)了抽象主題角色,實(shí)現(xiàn)了它的所有方法,并且含有一個(gè)抽象觀察者角色的集合引用作為成員變量,也就是說(shuō)一個(gè)主題角色可以擁有多個(gè)觀察者。

  • 抽象觀察者角色(Observer):定義了一個(gè)接口,聲明最為觀察者角色應(yīng)該具備的方法(這個(gè)方法是當(dāng)觀察者收到通知后做出的反應(yīng),一般就是update)。

  • 具體觀察者角色(Concrete Observer):實(shí)現(xiàn)抽象觀察者角色,主要是實(shí)現(xiàn)接口中的update方法。


  • 5、模式優(yōu)點(diǎn)

    ? 觀察者模式:定義了一種一對(duì)多的依賴關(guān)系,讓多個(gè)觀察者對(duì)象同時(shí)監(jiān)聽(tīng)某一個(gè)主題對(duì)象,這個(gè)主題對(duì)象在狀態(tài)發(fā)生變化時(shí),會(huì)通知所有觀察者對(duì)象,是他們能夠自動(dòng)更新自己。(也叫做 發(fā)布-訂閱模式)? ? 觀察者所做的工作其實(shí)就是解除耦合,讓耦合的雙方都依賴于抽象,而不是依賴于具體。從而使得各自的變化都不會(huì)影響另一邊的變化。


    6、與類似模式比較

    ? 觀察者模式是我們最常使用的設(shè)計(jì)模式之一,尤其是jQuery前端時(shí),對(duì)于事件的注冊(cè)都是觀察者模式的一個(gè)淋漓盡致的體現(xiàn)。? ? 觀察者和其他模式的比較,感覺(jué)差距很大。




    轉(zhuǎn)載于:https://my.oschina.net/heweipo/blog/466249

    總結(jié)

    以上是生活随笔為你收集整理的小菜学设计模式——观察者模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。