如何在没有样板代码的情况下向多个方法添加验证检查?

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

Google 的Android Basics with Compose 课程中有以下代码:https://pastebin.com/X0VZSmCg

我需要在

SmartHome
类方法中实现检查:

  1. turnOnTv()
    turnOnLight()
    方法仅在
    deviceStatus == "off"
    时才有效。
  2. 所有其他方法只有在
    deviceStatus == "on"
    时才有效。

每种方法如何无条件地达到这个目的?

kotlin inheritance conditional-statements composition
1个回答
0
投票

强烈的本能,不会将重复的逻辑添加到执行操作的 10-20 个单行函数中。

相反,所有这些功能都可以设为 SmartHome 类的私有功能。然后为每个操作定义一个枚举类型。还有一个类变量来跟踪系统是打开还是关闭的。还定义一个从每个操作枚举到布尔值的映射,这意味着该操作需要打开或关闭。

现在您可以创建一个名为 takeSmarthomeAction 的公共函数,它接受您想要执行的操作的枚举类型。它将在地图中查找系统是否需要打开或关闭。它将与智能家居当前状态的变量进行比较。如果状态不正确,它可能会提前返回。

最后,如果继续进行,您就知道这是正确的状态,并且您可以使用 switch case 从给定的枚举中调用相应的执行函数。

希望有帮助并且很清楚,否则我稍后会在代码中输入它!

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