HLA和OOAD相关概念和区别
HLA和OOAD概念和区别
HLA和OOAD在概念上和原则上的差别体现在对象上。在OOAD中,对象被定义为数据和方法的封装体;而在HLA中,对象由标识其特性的属性完全定义,在联邦执行过程中,通过这些属性值在联邦成员之间的传递可以实现信息的交换,联邦成员内部数据操作方法负责对属性值的更新和维护,当然联邦成员之间信息的交互还可以通过发送交互类来实现,但是交互类它不属于对象封装的特性。OOAD对象可以是具体的也可以是抽象的,但在HLA中,对象通常代表真实世界中的一个实体,比如:坦克、飞机,当然这个实体也可以只是一个概念系统,比如还未研制出来的宇宙飞船。
继承的概念在HLA和OOAD中是一致的,但他们确定类和子类时所关注的内容有差别,HLA关注继承的父类中的属性,而OOAD关注的是数据和方法。
OOAD的对象通过”消息”传递进行交互,在交互的过程中,一个对象可以激活另一个对象的方法,也就是说一个主动类的中的方法调用一个被动类中的方法。而在HLA中,对象之间的信息交换是通过属性值的更新或彼此间发送交互来实现的,属性值的更新职责可以由联邦中所有的联邦成员来承担。但在OOAD中,对象的状态以及更新对象的状态的操作(方法),都通过对象的类封装在一起的。
HLA是分布交互仿真的高层体系结构,它不考虑如何由对象构建成员,而是在假设已有成员的情况下考虑如何构建联邦。比如对于仿真系统的分析、对象的划分和确定、仿真应用系统(即“联邦成员”)的构建等底层工作,正是面向对象分析与设计(OOAD)方法要解决的问题。HLA主要考虑在联邦成员的基础上如何进行联邦集成,即如何设计联邦成员间的交互以达到仿真的目的。正因为如此,所以把它称为”高层体系结构“。HLA的基本思想就是采用面向对象的方法来设计、开发和实现仿真系统的对象模型(OM,Object Model),以获得仿真联邦的高层次的互操作和重用。