国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

觀察者模式在交通信號(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)燈與控制中心的耦合問題,討論了觀察者模式的思想原理以及類組成結(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)一步提升編程語言的抽象能力。

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

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

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

1.1 抽象主題(Subject)

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

1.2 具體主題(ConcreteSubject)

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

1.3 抽象觀察者(Observer)

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

1.4 具體觀察者(ConcreteObserver)

抽象觀察者的一個(gè)實(shí)現(xiàn)子類,在主題狀態(tài)發(fā)生變化時(shí),負(fù)責(zé)接收消息更改具體觀察者自身的狀態(tài),需實(shí)現(xiàn)父類中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)聽控制等方面即可。

3 結(jié)語

將一個(gè)系統(tǒng)分割成眾多的協(xié)作類增加了程序的靈活度,但同時(shí)也帶來負(fù)面影響,那就是需要維護(hù)分割出來后對(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] 歐陽宏基,楊衛(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.

猜你喜歡
通知觀察者主題
觀察者
冷靜而又理性的觀察者——德國華人作家劉瑛訪談
網(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
淺析古詩詞教學(xué)中意象教學(xué)的策略
農(nóng)村幼兒園“幼小銜接”的“五步走”
考試周刊(2016年79期)2016-10-13 23:40:56
生活處處有語文
巖井俊二的青春片摭談
近十年武俠電影主題的新探索
觀察者模式在Java 事件處理中的應(yīng)用研究*
松阳县| 德保县| 旺苍县| 宣汉县| 沾化县| 哈密市| 开化县| 克山县| 廊坊市| 旌德县| 苏州市| 陈巴尔虎旗| 星子县| 岫岩| 阜宁县| 托克逊县| 桃江县| 蒙山县| 青铜峡市| 天气| 浙江省| 亳州市| 桐城市| 崇义县| 中牟县| 凤台县| 右玉县| 九台市| 苏州市| 文水县| 察雅县| 泗水县| 怀安县| 玉环县| 永川市| 乐平市| 兰溪市| 鹰潭市| 县级市| 吴桥县| 和顺县|