• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 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)用研究*
    台前县| 讷河市| 三台县| 云林县| 民丰县| 扶绥县| 吐鲁番市| 古交市| 台北县| 鄯善县| 高阳县| 勃利县| 玉山县| 汉川市| 济源市| 宝坻区| 彩票| 油尖旺区| 余江县| 潜山县| 寿阳县| 阿拉尔市| 长寿区| 丰城市| 南安市| 林西县| 衡南县| 嘉兴市| 台南县| 东至县| 密云县| 涞水县| 绥滨县| 登封市| 中宁县| 墨竹工卡县| 工布江达县| 萝北县| 阿拉尔市| 华蓥市| 扶绥县|