Google 的Android Basics with Compose 课程中有以下代码:https://pastebin.com/X0VZSmCg。
我需要在
SmartHome
类方法中实现检查:
turnOnTv()
和 turnOnLight()
方法仅在 deviceStatus == "off"
时才有效。deviceStatus == "on"
时才有效。每种方法如何无条件地达到这个目的?
强烈的本能,不会将重复的逻辑添加到执行操作的 10-20 个单行函数中。
相反,所有这些功能都可以设为 SmartHome 类的私有功能。然后为每个操作定义一个枚举类型。还有一个类变量来跟踪系统是打开还是关闭的。还定义一个从每个操作枚举到布尔值的映射,这意味着该操作需要打开或关闭。
现在您可以创建一个名为 takeSmarthomeAction 的公共函数,它接受您想要执行的操作的枚举类型。它将在地图中查找系统是否需要打开或关闭。它将与智能家居当前状态的变量进行比较。如果状态不正确,它可能会提前返回。
最后,如果继续进行,您就知道这是正确的状态,并且您可以使用 switch case 从给定的枚举中调用相应的执行函数。
希望有帮助并且很清楚,否则我稍后会在代码中输入它!