# 威胁源仿真库设计文档 ## 接口设计 ### 核心接口继承关系 ```mermaid classDiagram ISimulationElement <|-- ITarget ISpectralCharacteristics <|-- ITarget ISimulationElement <|.. SimulationElement ISpectralCharacteristics <|.. SimulationElement SimulationElement <|-- Tank ITarget <|.. Tank class ISimulationElement { +string Id +Vector3D Position +Vector3D Velocity +double Speed +Orientation Orientation +bool IsActive +Update(deltaTime) +Activate() +Deactivate() +GetStatus() } class ISpectralCharacteristics { +double RadarCrossSection +double InfraredRadiationIntensity +double UltravioletRadiationIntensity +double MillimeterWaveRadiationIntensity } class ITarget { +string Type +double MillimeterWaveRadiationTemperature +double LaserReflectivity +double Length +double Width +double Height +double Health } ``` ### 设计说明 1. **接口分层** - `ISimulationElement`: 定义所有仿真元素的基本行为,包括位置、运动状态和生命周期管理 - `ISpectralCharacteristics`: 定义实体的频谱特性,包括雷达散射截面积、红外辐射等 - `ITarget`: 继承上述两个接口,并添加目标特有的属性(尺寸、生命值等) 2. **实现层次** - `SimulationElement`: 抽象基类,实现 `ISimulationElement` 和 `ISpectralCharacteristics` 的基本功能 - `Tank`: 继承 `SimulationElement` 并实现 `ITarget` 接口,获得基类功能的同时实现目标特有的属性和行为 3. **设计优势** - 接口隔离:将不同职责的功能分散到不同接口中 - 代码复用:通用功能在 `SimulationElement` 中实现 - 扩展性:新的实体类型可以方便地接入系统 - 维护性:频谱特性的修改只需要关注 `ISpectralCharacteristics` 接口 ## 干扰处理 ```text 干扰处理架构 ├── 干扰类型(JammingType) │ ├── 红外干扰(Infrared) │ ├── 毫米波干扰(MillimeterWave) │ ├── 激光干扰(Laser) │ ├── 射频干扰(RadioFrequency) │ └── GPS干扰(GPS) │ ├── 干扰模式(JammingMode) │ ├── 噪声干扰(Noise) │ ├── 欺骗干扰(Deception) │ ├── 阻塞干扰(Blocking) │ └── 扫频干扰(Sweep) │ ├── 干扰事件(JammingEvent) │ ├── 红外干扰事件(InfraredJammingEvent) │ ├── 毫米波干扰事件(MillimeterWaveJammingEvent) │ ├── 激光干扰事件(LaserJammingEvent) │ └── 射频干扰事件(RadioFrequencyJammingEvent) │ ├── 干扰参数(JammingParameters) │ ├── 干扰类型(Type) │ ├── 干扰功率(Power) │ ├── 干扰方向(Direction) │ ├── 干扰源位置(SourcePosition) │ ├── 干扰角度范围(AngleRange) │ ├── 干扰频率(Frequency) │ ├── 持续时间(Duration) │ ├── 干扰模式(Mode) │ └── 干扰开始时间(StartTime) │ ├── 干扰处理接口(IJammable) │ ├── 支持的干扰类型(SupportedJammingTypes) │ ├── 干扰状态(IsJammed) │ ├── 应用干扰(ApplyJamming) │ └── 清除干扰(ClearJamming) │ ├── 干扰处理基类(JammingHandler) │ ├── 干扰状态(IsJammed) │ ├── 当前干扰参数(CurrentJamming) │ ├── 累积干扰时间(_elapsedTime) │ ├── 更新干扰状态(Update) │ ├── 处理干扰(HandleJamming) │ ├── 清除干扰(ClearJamming) │ ├── 干扰应用回调(OnJammingApplied) │ └── 干扰清除回调(OnJammingCleared) │ ├── 可干扰组件(JammableComponent) │ ├── 干扰处理器(JammingProcessor) │ │ ├── 干扰阈值映射(_jammingThresholds) │ │ ├── 设置干扰阈值(SetJammingThreshold) │ │ ├── 检查干扰是否有效(IsJammingEffective) │ │ │ ├── 距离衰减计算 │ │ │ ├── 角度因素计算 │ │ │ └── 与阈值比较 │ │ ├── 处理干扰(HandleJamming) │ │ └── 清除干扰(ClearJamming) │ │ │ ├── 支持的干扰类型(SupportedJammingTypes) │ ├── 干扰状态(IsJammed) │ ├── 位置提供委托(_positionProvider) │ ├── 干扰应用事件(_onJammingApplied) │ ├── 干扰清除事件(_onJammingCleared) │ └── 加载干扰配置(LoadJammingConfigFromThreshold) │ └── 干扰响应实现 ├── 导引系统干扰响应 │ ├── 激光半主动导引系统(LaserSemiActiveGuidanceSystem) │ │ ├── 激光干扰事件处理(OnLaserJamming) │ │ ├── 干扰应用处理(HandleJammingApplied) │ │ └── 干扰清除处理(HandleJammingCleared) │ │ │ ├── 毫米波导引系统(MillimeterWaveGuidanceSystem) │ │ ├── 毫米波干扰事件处理(OnMillimeterWaveJamming) │ │ ├── 干扰应用处理(HandleJammingApplied) │ │ └── 干扰清除处理(HandleJammingCleared) │ │ │ ├── 红外成像导引系统(InfraredImagingGuidanceSystem) │ │ ├── 红外干扰事件处理(OnInfraredJamming) │ │ ├── 干扰应用处理(HandleJammingApplied) │ │ └── 干扰清除处理(HandleJammingCleared) │ │ │ └── 红外指令导引系统(InfraredCommandGuidanceSystem) │ └── 指示器干扰响应 ├── 激光指示器(LaserDesignator) │ ├── 激光干扰事件处理(OnLaserJamming) │ ├── 干扰应用处理(HandleJammingApplied) │ └── 干扰清除处理(HandleJammingCleared) │ ├── 激光驾束仪(LaserBeamRider) │ ├── 激光干扰事件处理(OnLaserJamming) │ ├── 干扰应用处理(HandleJammingApplied) │ └── 干扰清除处理(HandleJammingCleared) │ └── 红外测角仪(InfraredTracker) ├── 红外干扰事件处理(OnInfraredJamming) ├── 干扰应用处理(HandleJammingApplied) └── 干扰清除处理(HandleJammingCleared) ```