林江琎:负责 “设备与房间” 模块

任务 1:设备抽象类与具体设备(核心面向对象)

  • Device.java(抽象类)
    • 定义所有设备的通用属性:id(字符串)、name(名称)、isOn(开关状态)
    • 抽象方法:turnOn()(开启)、turnOff()(关闭)
    • 提供通用方法:getName()(获取名称)、isOn()(获取状态)
  • Light.java(智能灯)
    • 继承Device,额外功能:调光(亮度brightness,0-100)
    • 实现接口:Dimmable(调光),新增方法:setBrightness(int level)
  • Thermostat.java(温控器)
    • 继承Device,额外功能:温度调节(temperature,单位℃)
    • 新增方法:setTemperature(double temp)(设置温度)
  • DoorLock.java(智能锁)
    • 继承Device,额外功能:锁定状态(locked,布尔值)
    • 新增方法:lock()(上锁)、unlock()(解锁)

任务 2:房间管理(组合关系)

  • Room.java(房间类)
    • 包含多个设备(用List<Device>存储)
    • 方法:addDevice(Device device)(添加设备到房间)
    • 批量操作:turnOnAllDevices()(打开房间内所有设备)

钟俊负责 “系统与场景” 模块

任务 1:系统核心(单例模式)

  • SmartHomeSystem.java(系统管理类)
    • 单例模式:通过getInstance()获取唯一实例
    • 管理所有设备、房间、场景(用List存储)
    • 方法:addDevice(Device device)addRoom(Room room)

任务 2:场景控制(多态与条件判断)

  • Scene.java(场景接口)
    • 定义通用方法:activate()(激活场景)、deactivate()(停用场景)
  • ManualScene.java(手动场景)
    • 实现Scene接口,包含一系列设备操作(如 “回家模式”:开灯、开空调)
    • List<DeviceCommand>存储操作步骤,DeviceCommand是自定义命令类(如 “打开灯”“调节温度”)
  • AutomationScene.java(自动场景)
    • 实现Scene接口,根据条件自动触发(如 “温度高于 30℃时开空调”)
    • 依赖Condition接口判断条件(简化为时间条件:TimeCondition,如 “晚上 8 点自动开灯”)

任务 3:主类演示(必须包含)

  • Demo.java(程序入口)
    • 创建设备、房间、场景,演示系统功能