package com.car.manufacture; import com.car.config.CarConfig; import com.car.config.CarConfigurationSystem; import com.car.model.*; import java.util.ArrayList; import java.util.List; /** * 汽车制造系统类 - 设计并实现一个完整的汽车制造系统,包含多个层级的组合关系 */ public class CarManufacturingSystem { private List manufacturedCars; private CarConfigurationSystem configSystem; /** * 构造方法 */ public CarManufacturingSystem() { this.manufacturedCars = new ArrayList<>(); this.configSystem = new CarConfigurationSystem(); } /** * 制造标准汽车 * @param brand 品牌 * @param model 型号 * @param year 年份 * @return 制造的汽车 */ public Car manufactureStandardCar(String brand, String model, String year) { System.out.println("Starting manufacturing process for standard " + brand + " " + model); // 使用配置系统创建标准汽车 Car car = configSystem.createStandardCar(brand, model, year); // 执行制造流程 assembleChassis(car); installEngine(car); installTransmission(car); installInterior(car); installElectronics(car); installWheels(car); performQualityControl(car); // 添加到制造完成的汽车列表 manufacturedCars.add(car); System.out.println("Standard car manufacturing completed. Total cars manufactured: " + manufacturedCars.size()); return car; } /** * 制造自定义汽车 * @param brand 品牌 * @param model 型号 * @param year 年份 * @param config 自定义配置 * @return 制造的自定义汽车 */ public Car manufactureCustomCar(String brand, String model, String year, CarConfig config) { System.out.println("Starting manufacturing process for custom " + brand + " " + model); // 使用配置系统创建自定义配置的汽车 Car car = configSystem.configureCar(brand, model, year, config); // 执行制造流程 assembleChassis(car); installEngine(car); installTransmission(car); installInterior(car); installElectronics(car); installWheels(car); performQualityControl(car); // 添加到制造完成的汽车列表 manufacturedCars.add(car); System.out.println("Custom car manufacturing completed. Total cars manufactured: " + manufacturedCars.size()); return car; } /** * 组装底盘 * @param car 汽车对象 */ private void assembleChassis(Car car) { System.out.println("Step 1: Assembling chassis for " + car.getBrand() + " " + car.getModel()); // 底盘组装逻辑 } /** * 安装引擎 * @param car 汽车对象 */ private void installEngine(Car car) { System.out.println("Step 2: Installing " + car.getEngine().getType() + " engine"); // 引擎安装逻辑 } /** * 安装变速箱 * @param car 汽车对象 */ private void installTransmission(Car car) { System.out.println("Step 3: Installing " + car.getTransmission().getType() + " transmission"); // 变速箱安装逻辑 } /** * 安装内饰 * @param car 汽车对象 */ private void installInterior(Car car) { System.out.println("Step 4: Installing interior components"); System.out.println("- Steering wheel: " + car.getSteeringWheel().getMaterial()); System.out.println("- Seats: " + car.getSeats().size() + " seats installed"); // 内饰安装逻辑 } /** * 安装电子系统 * @param car 汽车对象 */ private void installElectronics(Car car) { System.out.println("Step 5: Installing electronic systems"); System.out.println("- Electronic control units: " + car.getElectronicSystem().getEcuList().size()); // 电子系统安装逻辑 } /** * 安装车轮 * @param car 汽车对象 */ private void installWheels(Car car) { System.out.println("Step 6: Installing wheels"); System.out.println("- Wheel size: " + car.getWheels().get(0).getSize()); // 车轮安装逻辑 } /** * 执行质量控制 * @param car 汽车对象 */ private void performQualityControl(Car car) { System.out.println("Step 7: Performing quality control checks"); // 运行诊断测试 car.runDiagnostics(); System.out.println("Quality control passed."); } /** * 获取制造的汽车列表 * @return 制造的汽车列表 */ public List getManufacturedCars() { return new ArrayList<>(manufacturedCars); } /** * 获取制造统计信息 * @return 制造统计信息 */ public String getManufacturingStats() { return "Total cars manufactured: " + manufacturedCars.size(); } }