用于基于物联网的家庭自动化系统(如Alexa)中使用的设计模式

问题描述 投票:0回答:1

我正在尝试设计一个基于IOT的基本家庭自动化系统,例如Alexa或Google Home。因此,谁能解释一下Alexa或Google Home中用于动态注册新设备(例如电灯和风扇)并对其进行操作的基本设计模式是什么。

我已经使用固定设备集的命令模式实现了此功能,但需要对其进行扩展以注意注册动态运行时新对象,而无需更改类似Alexa的代码

public SmartHomeDevice getSmartHomeDevice(String deviceName) {
        SmartHomeDevice smartHomeDevice = null;

        if (SmartHomeDeviceCategoryConstants.DRAWING_ROOM_LIGHT.getName().equalsIgnoreCase(deviceName)) {
            smartHomeDevice = new Light(deviceName);
        } else if (SmartHomeDeviceCategoryConstants.LIVING_ROOM_FAN.getName().equalsIgnoreCase(deviceName)) {
            smartHomeDevice = new Fan(deviceName);
        } else if (SmartHomeDeviceCategoryConstants.SMART_CHARGER.getName().equalsIgnoreCase(deviceName)) {
            smartHomeDevice = new ElectricalDevice(deviceName);
        }
        return smartHomeDevice;
    }
}
java design-patterns alexa
1个回答
0
投票

对于家庭自动化,必须使用命令设计模式,请参考https://www.geeksforgeeks.org/command-pattern/

© www.soinside.com 2019 - 2024. All rights reserved.