• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      觀察者模式在交通信號(hào)系統(tǒng)中的應(yīng)用

      2017-10-21 20:54:49溫立輝
      科技風(fēng) 2017年8期
      關(guān)鍵詞:通知觀察者主題

      溫立輝

      摘 要:針對(duì)交通信號(hào)系統(tǒng)中信號(hào)燈與控制中心的耦合問(wèn)題,討論了觀察者模式的思想原理以及類(lèi)組成結(jié)構(gòu),闡述觀察者模式的適用場(chǎng)景;同時(shí)分析了觀察者模式如何應(yīng)用在交通信號(hào)系統(tǒng)中,進(jìn)一步提升信號(hào)燈的合理性與靈活性。

      關(guān)鍵詞:觀察者;訂閱;發(fā)布;主題;通知

      觀察者模式(Publish/Subscribe)是一種行為模式,適用于多對(duì)象信息系統(tǒng)的交互場(chǎng)景中,其能有效的降低主題與對(duì)象間的依賴關(guān)系,解耦模塊間的耦合程度,進(jìn)一步提升編程語(yǔ)言的抽象能力。

      1 認(rèn)識(shí)觀察者模式

      觀察者模式作為一種解耦模式,是行為模式中的典范,其核心要素是主題類(lèi),也稱(chēng)為模式中心,其一舉一動(dòng)都會(huì)影響相關(guān)的追隨者—訂閱類(lèi),其行為體現(xiàn)了一種廣播式的傳遞效應(yīng)。

      在圖1中可以看到,該模式由四部分組成,分別是:主題、訂閱者以及兩個(gè)抽象基類(lèi)的實(shí)現(xiàn)子類(lèi),每個(gè)部分具體功能結(jié)構(gòu)描述如下。

      1.1 抽象主題(Subject)

      各具體主題類(lèi)的繼承類(lèi),定義了注冊(cè)監(jiān)聽(tīng)主題的方法(register),還存在發(fā)布主題更改的方法(publishNotice),具體的主題類(lèi)實(shí)現(xiàn)由子類(lèi)定義。

      1.2 具體主題(ConcreteSubject)

      抽象主題類(lèi)的一個(gè)實(shí)現(xiàn)子類(lèi),負(fù)責(zé)定義具體的主題,需實(shí)現(xiàn)父類(lèi)主題的定義方法(setNotice)。

      1.3 抽象觀察者(Observer)

      抽象觀察者父類(lèi)是所有觀察者對(duì)外交互的門(mén)面,本類(lèi)中需定義一個(gè)抽象的接收通知方法(receiveNotice),在抽象主題類(lèi)中需引入該類(lèi)型,作為對(duì)觀察者的操作引用。

      1.4 具體觀察者(ConcreteObserver)

      抽象觀察者的一個(gè)實(shí)現(xiàn)子類(lèi),在主題狀態(tài)發(fā)生變化時(shí),負(fù)責(zé)接收消息更改具體觀察者自身的狀態(tài),需實(shí)現(xiàn)父類(lèi)中receiveNotice方法。

      2 在信號(hào)系統(tǒng)中應(yīng)用

      觀察者模式最典型的應(yīng)用就是交通信號(hào)系統(tǒng)中,在該系統(tǒng)中有信號(hào)控制中心與為數(shù)眾多的信號(hào)燈。當(dāng)信號(hào)控制中心發(fā)出對(duì)應(yīng)的信號(hào)變換指令時(shí),所有信號(hào)指示燈都需變更自身信號(hào)指示,也就是當(dāng)信息控制中心這一主題發(fā)生變化時(shí),所有的觀察者對(duì)象(信號(hào)燈)都要更改自身的狀態(tài),如圖2所示。

      完成以上4步,就基本上實(shí)現(xiàn)了信號(hào)系統(tǒng)的主體結(jié)構(gòu),其余只完成相應(yīng)的細(xì)節(jié),加上如界面組件及監(jiān)聽(tīng)控制等方面即可。

      3 結(jié)語(yǔ)

      將一個(gè)系統(tǒng)分割成眾多的協(xié)作類(lèi)增加了程序的靈活度,但同時(shí)也帶來(lái)負(fù)面影響,那就是需要維護(hù)分割出來(lái)后對(duì)象之間的一致性。在交通信號(hào)系統(tǒng)中,恰如其分的使用了訂閱/發(fā)布這一行為模式而有效降低了指揮中心與信號(hào)燈的耦合,極大的提高了系統(tǒng)的靈活性與裝配能力。

      參考文獻(xiàn):

      [1] 劉凌云.觀察者模式在面向抽象編程中的應(yīng)用[J].計(jì)算機(jī)與數(shù)字工程,2016,44(8):1474-1477,1522.

      [2] 歐陽(yáng)宏基,楊衛(wèi)忠,趙薔.觀察者模式在Java事件處理中的應(yīng)用研究[J].微處理機(jī),2013,34(4):77-79.

      [3] 吳清壽.基于事件機(jī)制的觀察者模式及應(yīng)用[J].重慶理工大學(xué)學(xué)報(bào):自然科學(xué)版,2012,26(9):100-104.

      猜你喜歡
      通知觀察者主題
      觀察者
      冷靜而又理性的觀察者——德國(guó)華人作家劉瑛訪談
      網(wǎng)絡(luò)存儲(chǔ)服務(wù)提供商在通知?jiǎng)h除程序中的義務(wù)分配
      東方教育(2016年17期)2016-11-23 10:57:14
      遺囑中指定保險(xiǎn)受益人的有效性及方式
      人間(2016年26期)2016-11-03 16:51:14
      淺析古詩(shī)詞教學(xué)中意象教學(xué)的策略
      農(nóng)村幼兒園“幼小銜接”的“五步走”
      考試周刊(2016年79期)2016-10-13 23:40:56
      生活處處有語(yǔ)文
      巖井俊二的青春片摭談
      近十年武俠電影主題的新探索
      觀察者模式在Java 事件處理中的應(yīng)用研究*
      齐河县| 平顺县| 常德市| 确山县| 孝义市| 临澧县| 姜堰市| 葫芦岛市| 淮阳县| 监利县| 富蕴县| 绥德县| 南江县| 西昌市| 延边| 山丹县| 宜良县| 甘德县| 略阳县| 织金县| 安仁县| 南江县| 新绛县| 海晏县| 四会市| 茶陵县| 伊金霍洛旗| 通州市| 金寨县| 静安区| 吉安市| 高碑店市| 栾城县| 米脂县| 蛟河市| 临潭县| 克山县| 楚雄市| 淮南市| 南郑县| 襄垣县|