以QQ的状态设置来做一次实践。QQ用户可以对如下的状态方面的设置。后两张图是登录后的状态的可选项和鼠标键盘无动作后将状态切换至的可选项。默认的自动回复有三种,默认的快捷回复有四种。对于自动回复和快捷回复,用户都可以做增、删、改。

  登录状态: 我在线上, Q我吧, 离开, 忙碌, 请勿打扰, 隐身
  运行全屏程序时切换至忙碌: 真, 假
  [备注1] :“鼠标键盘无动作”其实包含了两个设置,一是是否被选中,二是时间设置,所以需要分成两个参数来处理。这样,加上原有的两个子项“将状态切换至”和“自动锁定”,“鼠标键盘无动作”有三个子项。
  [备注2]:在“鼠标键盘无动作”没有被选中时,它的三个子项的设置没有意义,所以增加了“忽略”来对应这种情况。
  [备注3]:“无动作时间”有60个可选项:1-60分钟。不需要测试每一个时间点,这里选择了4个值做代表。
  鼠标键盘无动作: 真, 假
  无动作时间: 1, 5, 30, 60, 忽略
  将状态切换至: 离开, 忙碌, 忽略
  自动锁定: 真, 忽略
  [备注4]:在“自动回复”没有被选中时,关于“自动回复内容”的设置没有意义,所以增加可选项“忽略”来对应这种情况。
  [备注5]:用户可以对“自动回复内容”和“快捷回复”的内容做增删改,这里仅用默认设置。
  自动回复: 真, 假
  自动回复内容: 回复1, 回复2, 回复3,忽略
  快捷回复: 快捷回复1, 快捷回复2, 快捷回复3, 快捷回复4
  [备注6]:如果“鼠标键盘无动作”被选中,则它的三个子项不能为“忽略”
  IF [鼠标键盘无动作] = "真"
  THEN ([将状态切换至] IN {"离开", "忙碌"}) OR [自动锁定] = "真";
  IF [鼠标键盘无动作] = "真"
  THEN [无动作时间] NOT IN {"忽略"};
  [备注7] :如果“鼠标键盘无动作”没有被选中,则它的三个子项只能为“忽略”。
  IF [鼠标键盘无动作] = "假"
  THEN ([将状态切换至] = "忽略") AND ([自动锁定] = "忽略") AND ([无动作时间] = "忽略");
  [备注8] :两个子项是互相排斥的。当选中其中一个后,另一个只能为“忽略”。
  IF ([将状态切换至] IN {"离开", "忙碌"})
  THEN [自动锁定] = "忽略";
  IF [自动锁定] = "真"
  THEN [将状态切换至] = " 忽略 ";
  [备注9] :在“自动回复”没有被选中的时候,它的内容设置只能是“忽略”。
  IF [自动回复] = "假"
  THEN [自动回复内容] = "忽略";
  [备注10]:如果“自动回复“被选中,则”自动回复内容“不能为“忽略”。
  IF [自动回复] = "真"
  THEN [自动回复内容] NOT IN {"忽略"};