状态机解决复杂逻辑
开发回顾:
第一代:两个变量控制逻辑
1
鼠标
切换背景成程序A的视图/程序B的视图
IsBackgroundA 用于表示当前背景的变量
切换程序AB激活状态
IsAppAActive 用于表示当前激活程序的变量
第二代:两个变量控制逻辑
1
鼠标
切换背景成程序A的视图/程序B的视图
IsBackgroundA 用于表示当前背景的变量
切换程序AB激活状态
IsAppAActive 用于表示当前激活程序的变量
2
快捷键
切换背景成程序A的视图/程序B的视图
切换程序AB激活状态
第三代:三个变量控制逻辑,且出现两个变量组合来确定关系的情况
1
鼠标
切换背景成程序A的视图/程序B的视图
IsBackgroundA 用于表示当前背景的变量
切换程序AB激活状态
IsAppAActive 用于表示当前激活程序的变量
2
快捷键
切换背景成程序A的视图/程序B的视图
切换程序AB激活状态
3
程序A激活状态下
鼠标滑过X区域时,激活B
IsAppAActive =true&&CurrentActiveState 用于记录鼠标滑进X区域前的状态,方便滑出后赋值原始状态
鼠标滑出X区域时,恢复原始激活状态
执行程序B命令时,激活程序B
第四代:四个变量控制+排列组合
需要在鼠标和快捷键上激活命令上添加动画,此时我已经觉得程序不可控起来,
第一点,是因为动画添加的时机不同,激活A时可能需要先激活A在开始动画,B可能需要先展示动画再激活B,
第二点,此时需要引入第四个变量来控制动画效果,因为弹入弹出动画是相反的
1 鼠标 切换背景成程序A的视图/程序B的视图 IsBackgroundA 用于表示当前背景的变量切换程序AB激活状态 IsAppAActive 用于表示当前激活程序的变量
2 快捷键 切换背景成程序A的视图/程序B的视图
切换程序AB激活状态
3 程序A激活状态下 鼠标滑过X区域时,激活B IsAppAActive =true&&CurrentActiveState 用于记录鼠标滑进X区域前的状态,方便滑出后赋值原始状态
鼠标滑出X区域时,恢复原始激活状态
执行程序B命令时,激活程序B
4 激活程序时添加动画 IsRightAnimation 来选择动画展示效果 , IsBackgroundA&&IsAppAActive==》来选择动画展示时机
第五代:五个变量控制+排列组合
需要多台设备同时开启程序进行同步,接受来自服务器的鼠标键盘命令,需要添加一个变量表示是否具有主控权
另外,鼠标执行方法中添加了多个判断,包括动画,有的方法是写在Anmation.completed方法中,每次执行一个命令所有变量值几乎都会变一次,遇到问题简直不能调试
1 鼠标 切换背景成程序A的视图/程序B的视图 IsBackgroundA 用于表示当前背景的变量切换程序AB激活状态 IsAppAActive 用于表示当前激活程序的变量
2 快捷键 切换背景成程序A的视图/程序B的视图
切换程序AB激活状态
3 程序A激活状态下 鼠标滑过X区域时,激活B IsAppAActive =true&&CurrentActiveState 用于记录鼠标滑进X区域前的状态,方便滑出后赋值原始状态
鼠标滑出X区域时,恢复原始激活状态
执行程序B命令时,激活程序B
4 激活程序时添加动画 IsRightAnimation 来选择动画展示效果 , IsBackgroundA&&IsAppAActive==》来选择动画展示时机
5 不同设备间同步,添加发送命令和接受命令 需要多台设备同时开启程序进行同步 IsMaster 是否具有控制权
第六代:五个变量控制+排列组合+动画时机