设计模式在武器装备模拟对抗系统态势显示模块中应用

时间:2022-07-01 10:25:29

设计模式在武器装备模拟对抗系统态势显示模块中应用

摘要:该文介绍了两种设计模式的特点和适用场合,通过分析武器装备模拟对抗系统态势显示模块设计中的问题,提出了观察者和中介者两种设计模式在系统构建中的应用思想,提高了系统的可维护性和可扩展性,为以后系统模块的移植和扩展打下了基础。

关键词:模拟对抗系统;显示模块;设计模式

中图分类号:TP311文献标识码:A文章编号: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

设计模式是软件工程技术中的一个重要概念,通过提供一个显示类和对象作用关系以及它们之间潜在联系的说明规范,使人们可以更加方便地复用成功的设计和体系结构。这样可以简化软件的设计和实现过程,使软件系统的基础构架更加清晰,为软件工程的应用和软件开发提供了良好的途径。[1]

在武器装备模拟对抗系统的实现过程中,如何真实、直观地表现虚拟战场环境并实时反映战场变化一直作为一个瓶颈而存在。本文对通过分析观察者模式(Observer)和中介者(Mediator)模式的特点,提出了基于这两种设计模式的武器装备模拟对抗系统态势显示模块设计方案。

1 武器装备模拟对抗系统态势显示模块的结构

随着信息技术在军事领域的广泛应用,战争系统变得更加复杂。当战争需要时,体系对抗就会在敌对双方作战体系之间展开,形成所有要素的整体对抗。敌对双方武器装备体系对抗所构成的整体称为体系对抗系统,这个系统具有显著的复杂性特征。[2]因为武器装备模拟对抗系统具有涌现性、不确定性、交互性、非线性和主动性等特点,因为其设计与实现具有一定的难度。显示模块是武器装备模拟对抗系统一个重要的组成部分,目前显示模块的设计实现过程中面临如下三个主要问题:

1) 作战要素交互关系复杂

虚拟战场环境中包括大量武器装备模型、各种作战人员模型 ,而且武器装备的性能以及作战人员级别,兵种的也不尽不同。在模拟对抗过程中不同武器装备之间、不同的作战人员之间的对抗会产生效果不同的毁伤,因为作战要素的多样性,所以对抗交互的种类极为繁多。

2) 状态显示实时变化

战场环境处于实时的动态变化过程中,例如移动模型时时刻刻进行的碰撞检测,随时出现的炮弹弹坑、武器开火、装备受损等都要求可视化场景的变化必须是动态、实时的。场景变化实时信息的处理也是战场态势显示的难点之一[3]。

3) 场景控制复杂

虚拟战场环境中作战环境中地形复杂,武器种类繁多,战斗人员的兵种多为混合型 ,指挥命令多样,而且每一种战斗模型所能够观测的范围也不尽相同,所有这些都造成可视化场景控制复杂度的大大增加[3]。

在武器装备模拟对抗系统态势显示模块中主要包括二部分:视图层、要素层,其中后者包括:战场环境模块、红军模块和蓝军模块。如图1所示。

2 设计模式分析

2.1 观察者模式(Observer)[1]

在软件构建过程中,常常需要为某些对象建立一种“通知依赖关系”―― 一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系,从而实现软件体系结构的松耦合。定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。在观察者(Observer)模式里有如下的角色:

Observer模式如图2所示。

Observer模式的适用场合如下:

1) 当一个抽象模型有两个方面,其中一个方面依赖于另一方面时,将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。

2) 当对一个对象的改变需要同时改变其他对象 ,而不知道具体有多少对象有待改变时。

3) 当一个对象必须通知其他对象,而它又不能假定是哪个对象时,即这些对象不是紧密耦合的。

2.2 中介者模式(Mediator)[1]

中介者模式用一个中介对象来封装一系列的对象交互,使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

Mediator模式如图3所示。

Mediator模式的适用场合如下:

1) 一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱而且难以理解。

2) 一个对象引用其它很多对象并且直接与这些对象通信,导致难以复用该对象。

3) 想定制一个分布在多个类中的行为,而又不想生成太多的子类。

3 武器装备模拟对抗系统态势显示模块设计与实现

3.1 红蓝军模块对抗的设计与实现

在相互对抗的不同武器装备和作战人员类中定义一个公共的接口WPmediator,通过生成具体的中介者ConcreteWPmediator来实现特定的武器装备和作战人员之间的交互。

具体实现见图4。

应用中介者模式有以下优点:

1) 减少了子类生成

中介者将原来分布于不同武器装备和作战人员类WPcolleague内部的行为集中到一起,改变这些行为只需生成WPmediator的子类即可。

2) 将各武器装备和作战人员类WPcolleague解耦

WPmediator有利于各WPcolleague之间的松耦合,可以独立地改变和复用各WPcolleague和WPmediator类。

3) 简化了对象协议

用WPmediator和WPcolleague之间的一对多的交互来代替多对多的交互,更容易理解、维护和扩展。

3.2 显示层的设计与实现

将显示介面定义为观察者Observer,将分别属于红蓝军双方的武器装备及作战人员定义为目标Subject,当Subject状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。因为这种依赖关系可能是极为复杂的,所以我们通过建立目标和观察者之间的中介者来解决这一问题,方法见红蓝军模块对抗的设计与实现。

其结构图如图5。

由于显示层和作战要素不是紧密耦合的,它们可以属于一个系统中的不同抽象层次。一个处于较低层次的目标对象可以与一个处于较高层次的观察者通信并通知它,这样就保持了系统层次的完整。

4 结束语

本文通过引入设计模式,实现显示层和数据层的解耦,把一对多对象之间的通知依赖关系变得更为松散,减少了开发的工作量和出现错误的概率,同时大大地提高了系统的灵活性、可维护性和可扩展性,也使软件的复用性得到了增强。

参考文献:

[1] Gamma E,Helm R.设计模式:可复用面向对象软件的基础[M].北京:机械工业出版社,2002.

[2] 蔡延曦,张卓,孙琰.基于MAS的武器装备体系对抗模型与实现[J].科学技术与工程,2008,15(8):2611-2613.

[3] 刘扬,李京,朱文泉,等.模拟对抗演练系统可视化部分设计与实现[J].计算机应用,2007,27(z1):1001-9081.

上一篇:运输车辆安全体系评价的研究 下一篇:计算机显卡常见故障解析