package com.car.model; import java.util.ArrayList; import java.util.List; /** * 汽车电子系统类 - 汽车的电子控制中心 * 与Car类是组合关系,包含多个ElectronicControlUnit组件 */ public class ElectronicSystem { private List 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 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() + "]"; } }