|
|
package com.car.model;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* 汽车电子系统类 - 汽车的电子控制中心
|
|
|
* 与Car类是组合关系,包含多个ElectronicControlUnit组件
|
|
|
*/
|
|
|
public class ElectronicSystem {
|
|
|
private List<ElectronicControlUnit> ecuList; // ECU列表 - 组合关系
|
|
|
private String systemVersion; // 系统版本
|
|
|
|
|
|
/**
|
|
|
* 构造方法
|
|
|
* @param systemVersion 系统版本
|
|
|
*/
|
|
|
public ElectronicSystem(String systemVersion) {
|
|
|
this.systemVersion = systemVersion;
|
|
|
this.ecuList = new ArrayList<>();
|
|
|
|
|
|
// 初始化基本的ECU组件
|
|
|
initializeECUs();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 初始化基础ECU组件
|
|
|
*/
|
|
|
private void initializeECUs() {
|
|
|
addECU(new ElectronicControlUnit("Engine ECU", "Controls engine performance"));
|
|
|
addECU(new ElectronicControlUnit("ABS ECU", "Controls anti-lock braking system"));
|
|
|
addECU(new ElectronicControlUnit("Body ECU", "Controls body functions"));
|
|
|
addECU(new ElectronicControlUnit("Transmission ECU", "Controls transmission shifting"));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 添加ECU到系统
|
|
|
* @param ecu 电子控制单元
|
|
|
*/
|
|
|
public void addECU(ElectronicControlUnit ecu) {
|
|
|
ecuList.add(ecu);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 替换指定的ECU
|
|
|
* @param index ECU索引
|
|
|
* @param newEcu 新的ECU
|
|
|
* @return 是否替换成功
|
|
|
*/
|
|
|
public boolean replaceECU(int index, ElectronicControlUnit newEcu) {
|
|
|
if (index >= 0 && index < ecuList.size()) {
|
|
|
ecuList.set(index, newEcu);
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 系统诊断 - 检查所有ECU状态
|
|
|
* @return 所有ECU的诊断结果
|
|
|
*/
|
|
|
public boolean runDiagnostics() {
|
|
|
boolean allOperational = true;
|
|
|
for (ElectronicControlUnit ecu : ecuList) {
|
|
|
if (!ecu.diagnose()) {
|
|
|
System.out.println(ecu.getName() + " is not operational!");
|
|
|
allOperational = false;
|
|
|
}
|
|
|
}
|
|
|
return allOperational;
|
|
|
}
|
|
|
|
|
|
// getter and setter methods
|
|
|
public List<ElectronicControlUnit> getEcuList() {
|
|
|
return new ArrayList<>(ecuList); // 返回副本,保持封装性
|
|
|
}
|
|
|
|
|
|
public String getSystemVersion() {
|
|
|
return systemVersion;
|
|
|
}
|
|
|
|
|
|
public void setSystemVersion(String systemVersion) {
|
|
|
this.systemVersion = systemVersion;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public String toString() {
|
|
|
return "ElectronicSystem [systemVersion=" + systemVersion + ", ecuCount=" + ecuList.size() + "]";
|
|
|
}
|
|
|
} |