You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sdf/ElectronicSystem.java

90 lines
2.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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() + "]";
}
}