摘要:該文介紹了兩種設(shè)計(jì)模式的特點(diǎn)和適用場(chǎng)合,通過分析武器裝備模擬對(duì)抗系統(tǒng)態(tài)勢(shì)顯示模塊設(shè)計(jì)中的問題,提出了觀察者和中介者兩種設(shè)計(jì)模式在系統(tǒng)構(gòu)建中的應(yīng)用思想,提高了系統(tǒng)的可維護(hù)性和可擴(kuò)展性,為以后系統(tǒng)模塊的移植和擴(kuò)展打下了基礎(chǔ)。
關(guān)鍵詞:模擬對(duì)抗系統(tǒng);顯示模塊;設(shè)計(jì)模式
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)36-10335-02
Application of Design Pattern in Weapon Equipment Simulation Countermine System Display Module
ZHANG Guo-wei, ZHU Jian-min, GONG Yun-xiang
(Engineering Institute of Engineer Corps, PLA Univ. of Sci. Tech., Nanjing 210007, China)
Abstract: The paper introduces the characteristic and application situation. By analyzing the questions of Weapon Equipment Simulation Countermine System Display Module, the idea about application of Observer and Mediator design patterns in system construction is listed. The maintainability and expansibility of system are enhanced. Groundwork is established for the migration and expansion of system module.
Key words: simulation countermine system; display module; design pattern
設(shè)計(jì)模式是軟件工程技術(shù)中的一個(gè)重要概念,通過提供一個(gè)顯示類和對(duì)象作用關(guān)系以及它們之間潛在聯(lián)系的說明規(guī)范,使人們可以更加方便地復(fù)用成功的設(shè)計(jì)和體系結(jié)構(gòu)。這樣可以簡(jiǎn)化軟件的設(shè)計(jì)和實(shí)現(xiàn)過程,使軟件系統(tǒng)的基礎(chǔ)構(gòu)架更加清晰,為軟件工程的應(yīng)用和軟件開發(fā)提供了良好的途徑。[1]
在武器裝備模擬對(duì)抗系統(tǒng)的實(shí)現(xiàn)過程中,如何真實(shí)、直觀地表現(xiàn)虛擬戰(zhàn)場(chǎng)環(huán)境并實(shí)時(shí)反映戰(zhàn)場(chǎng)變化一直作為一個(gè)瓶頸而存在。本文對(duì)通過分析觀察者模式(Observer)和中介者(Mediator)模式的特點(diǎn),提出了基于這兩種設(shè)計(jì)模式的武器裝備模擬對(duì)抗系統(tǒng)態(tài)勢(shì)顯示模塊設(shè)計(jì)方案。
1 武器裝備模擬對(duì)抗系統(tǒng)態(tài)勢(shì)顯示模塊的結(jié)構(gòu)
隨著信息技術(shù)在軍事領(lǐng)域的廣泛應(yīng)用,戰(zhàn)爭(zhēng)系統(tǒng)變得更加復(fù)雜。當(dāng)戰(zhàn)爭(zhēng)需要時(shí),體系對(duì)抗就會(huì)在敵對(duì)雙方作戰(zhàn)體系之間展開,形成所有要素的整體對(duì)抗。敵對(duì)雙方武器裝備體系對(duì)抗所構(gòu)成的整體稱為體系對(duì)抗系統(tǒng),這個(gè)系統(tǒng)具有顯著的復(fù)雜性特征。[2]因?yàn)槲淦餮b備模擬對(duì)抗系統(tǒng)具有涌現(xiàn)性、不確定性、交互性、非線性和主動(dòng)性等特點(diǎn),因?yàn)槠湓O(shè)計(jì)與實(shí)現(xiàn)具有一定的難度。顯示模塊是武器裝備模擬對(duì)抗系統(tǒng)一個(gè)重要的組成部分,目前顯示模塊的設(shè)計(jì)實(shí)現(xiàn)過程中面臨如下三個(gè)主要問題:
1) 作戰(zhàn)要素交互關(guān)系復(fù)雜
虛擬戰(zhàn)場(chǎng)環(huán)境中包括大量武器裝備模型、各種作戰(zhàn)人員模型 ,而且武器裝備的性能以及作戰(zhàn)人員級(jí)別,兵種的也不盡不同。在模擬對(duì)抗過程中不同武器裝備之間、不同的作戰(zhàn)人員之間的對(duì)抗會(huì)產(chǎn)生效果不同的毀傷,因?yàn)樽鲬?zhàn)要素的多樣性,所以對(duì)抗交互的種類極為繁多。
2) 狀態(tài)顯示實(shí)時(shí)變化
戰(zhàn)場(chǎng)環(huán)境處于實(shí)時(shí)的動(dòng)態(tài)變化過程中,例如移動(dòng)模型時(shí)時(shí)刻刻進(jìn)行的碰撞檢測(cè),隨時(shí)出現(xiàn)的炮彈彈坑、武器開火、裝備受損等都要求可視化場(chǎng)景的變化必須是動(dòng)態(tài)、實(shí)時(shí)的。場(chǎng)景變化實(shí)時(shí)信息的處理也是戰(zhàn)場(chǎng)態(tài)勢(shì)顯示的難點(diǎn)之一[3]。
3) 場(chǎng)景控制復(fù)雜
虛擬戰(zhàn)場(chǎng)環(huán)境中作戰(zhàn)環(huán)境中地形復(fù)雜,武器種類繁多,戰(zhàn)斗人員的兵種多為混合型 ,指揮命令多樣,而且每一種戰(zhàn)斗模型所能夠觀測(cè)的范圍也不盡相同,所有這些都造成可視化場(chǎng)景控制復(fù)雜度的大大增加[3]。
在武器裝備模擬對(duì)抗系統(tǒng)態(tài)勢(shì)顯示模塊中主要包括二部分:視圖層、要素層,其中后者包括:戰(zhàn)場(chǎng)環(huán)境模塊、紅軍模塊和藍(lán)軍模塊。如圖1所示。
2 設(shè)計(jì)模式分析
2.1 觀察者模式(Observer)[1]
在軟件構(gòu)建過程中,常常需要為某些對(duì)象建立一種“通知依賴關(guān)系”—— 一個(gè)對(duì)象(目標(biāo)對(duì)象)的狀態(tài)發(fā)生改變,所有的依賴對(duì)象(觀察者對(duì)象)都將得到通知。如果這樣的依賴關(guān)系過于緊密,將使軟件不能很好地抵御變化。使用面向?qū)ο蠹夹g(shù),可以將這種依賴關(guān)系弱化,并形成一種穩(wěn)定的依賴關(guān)系,從而實(shí)現(xiàn)軟件體系結(jié)構(gòu)的松耦合。定義對(duì)象間的一種一對(duì)多的依賴關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)象都得到通知并被自動(dòng)更新。在觀察者(Observer)模式里有如下的角色:
Observer模式如圖2所示。
Observer模式的適用場(chǎng)合如下:
1) 當(dāng)一個(gè)抽象模型有兩個(gè)方面,其中一個(gè)方面依賴于另一方面時(shí),將這二者封裝在獨(dú)立的對(duì)象中以使它們可以各自獨(dú)立地改變和復(fù)用。
2) 當(dāng)對(duì)一個(gè)對(duì)象的改變需要同時(shí)改變其他對(duì)象 ,而不知道具體有多少對(duì)象有待改變時(shí)。
3) 當(dāng)一個(gè)對(duì)象必須通知其他對(duì)象,而它又不能假定是哪個(gè)對(duì)象時(shí),即這些對(duì)象不是緊密耦合的。
2.2 中介者模式(Mediator)[1]
中介者模式用一個(gè)中介對(duì)象來封裝一系列的對(duì)象交互,使各對(duì)象不需要顯示地相互引用,從而使其耦合松散,而且可以獨(dú)立地改變它們之間的交互。
Mediator模式如圖3所示。
Mediator模式的適用場(chǎng)合如下:
1) 一組對(duì)象以定義良好但是復(fù)雜的方式進(jìn)行通信,產(chǎn)生的相互依賴關(guān)系結(jié)構(gòu)混亂而且難以理解。
2) 一個(gè)對(duì)象引用其它很多對(duì)象并且直接與這些對(duì)象通信,導(dǎo)致難以復(fù)用該對(duì)象。
3) 想定制一個(gè)分布在多個(gè)類中的行為,而又不想生成太多的子類。
3 武器裝備模擬對(duì)抗系統(tǒng)態(tài)勢(shì)顯示模塊設(shè)計(jì)與實(shí)現(xiàn)
3.1 紅藍(lán)軍模塊對(duì)抗的設(shè)計(jì)與實(shí)現(xiàn)
在相互對(duì)抗的不同武器裝備和作戰(zhàn)人員類中定義一個(gè)公共的接口WPmediator,通過生成具體的中介者ConcreteWPmediator來實(shí)現(xiàn)特定的武器裝備和作戰(zhàn)人員之間的交互。
具體實(shí)現(xiàn)見圖4。
應(yīng)用中介者模式有以下優(yōu)點(diǎn):
1) 減少了子類生成
中介者將原來分布于不同武器裝備和作戰(zhàn)人員類WPcolleague內(nèi)部的行為集中到一起,改變這些行為只需生成WPmediator的子類即可。
2) 將各武器裝備和作戰(zhàn)人員類WPcolleague解耦
WPmediator有利于各WPcolleague之間的松耦合,可以獨(dú)立地改變和復(fù)用各WPcolleague和WPmediator類。
3) 簡(jiǎn)化了對(duì)象協(xié)議
用WPmediator和WPcolleague之間的一對(duì)多的交互來代替多對(duì)多的交互,更容易理解、維護(hù)和擴(kuò)展。
3.2 顯示層的設(shè)計(jì)與實(shí)現(xiàn)
將顯示介面定義為觀察者Observer,將分別屬于紅藍(lán)軍雙方的武器裝備及作戰(zhàn)人員定義為目標(biāo)Subject,當(dāng)Subject狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)象都會(huì)得到通知并自動(dòng)更新。因?yàn)檫@種依賴關(guān)系可能是極為復(fù)雜的,所以我們通過建立目標(biāo)和觀察者之間的中介者來解決這一問題,方法見紅藍(lán)軍模塊對(duì)抗的設(shè)計(jì)與實(shí)現(xiàn)。
其結(jié)構(gòu)圖如圖5。
由于顯示層和作戰(zhàn)要素不是緊密耦合的,它們可以屬于一個(gè)系統(tǒng)中的不同抽象層次。一個(gè)處于較低層次的目標(biāo)對(duì)象可以與一個(gè)處于較高層次的觀察者通信并通知它,這樣就保持了系統(tǒng)層次的完整。
4 結(jié)束語
本文通過引入設(shè)計(jì)模式,實(shí)現(xiàn)顯示層和數(shù)據(jù)層的解耦,把一對(duì)多對(duì)象之間的通知依賴關(guān)系變得更為松散,減少了開發(fā)的工作量和出現(xiàn)錯(cuò)誤的概率,同時(shí)大大地提高了系統(tǒng)的靈活性、可維護(hù)性和可擴(kuò)展性,也使軟件的復(fù)用性得到了增強(qiáng)。
參考文獻(xiàn):
[1] Gamma E,Helm R.設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)[M].北京:機(jī)械工業(yè)出版社,2002.
[2] 蔡延曦,張卓,孫琰.基于MAS的武器裝備體系對(duì)抗模型與實(shí)現(xiàn)[J].科學(xué)技術(shù)與工程,2008,15(8):2611-2613.
[3] 劉揚(yáng),李京,朱文泉,等.模擬對(duì)抗演練系統(tǒng)可視化部分設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2007,27(z1):1001-9081.