我已经使用Swing实现了GUI并尝试尽可能地遵循MVC模式。
不过我也在想,MVC并不是谜题的全部。
FSM在GUI设计中也会使用吗?
我从没有在GUI中使用过FSM,我的方法是:在动作上调用控制器的相应方法来更新模型,最后更新视图。
通常,在用户请求触发时,我使用一些简单的检查来确保用户应该能够执行这种操作:特定组件是否启用?或者该标签是否可见?等等。
到目前为止,这似乎有效,但我必须承认我很“幸运”,没有建立过太复杂、精细或繁琐的GUI。
我以前构建过FSM(在不同类型的应用程序中-主要是C++),我开始思考FSM在GUI中是否实际上被用作一种模式,我的方法即通过对ActionListeners代码进行检查,查看用户所看到的内容以及哪些组件已启用或禁用等等,决定用户是否应该看到一些错误消息而不是能够执行特定的操作(例如按钮承诺的操作)对于完整的GUI应用程序来说实际上不是一个好主意。
因此,在设计GUI时,除了如何实现MVC之外,您是否将FSM与您的设计结合使用?
更新:
在查看Dhruv Gairola在他的评论中的文章后,我仍然感到困惑。
文章提到构建FSM,尽管实际上是绑定到计算器实现上的,这意味着即使计算器是通过命令行获取用户输入而不是通过GUI实现的,仍然需要FSM。
我仍然不确定在每个时间点验证用户操作的FSM是否是一种流行或有效的设计。
这似乎可能会耗费太多精力,并要求GUI已经完全预先设定,并且所有可能的用户操作都已映射到特定状态取决于特定结果。
鉴于目前还没有任何评论只有一个回复,我倾向于认为验证控件上用户操作的FSM实际上并未被使用。
如果您对此有任何意见或建议,欢迎发表。谢谢。
不过我也在想,MVC并不是谜题的全部。
FSM在GUI设计中也会使用吗?
我从没有在GUI中使用过FSM,我的方法是:在动作上调用控制器的相应方法来更新模型,最后更新视图。
通常,在用户请求触发时,我使用一些简单的检查来确保用户应该能够执行这种操作:特定组件是否启用?或者该标签是否可见?等等。
到目前为止,这似乎有效,但我必须承认我很“幸运”,没有建立过太复杂、精细或繁琐的GUI。
我以前构建过FSM(在不同类型的应用程序中-主要是C++),我开始思考FSM在GUI中是否实际上被用作一种模式,我的方法即通过对ActionListeners代码进行检查,查看用户所看到的内容以及哪些组件已启用或禁用等等,决定用户是否应该看到一些错误消息而不是能够执行特定的操作(例如按钮承诺的操作)对于完整的GUI应用程序来说实际上不是一个好主意。
因此,在设计GUI时,除了如何实现MVC之外,您是否将FSM与您的设计结合使用?
更新:
在查看Dhruv Gairola在他的评论中的文章后,我仍然感到困惑。
文章提到构建FSM,尽管实际上是绑定到计算器实现上的,这意味着即使计算器是通过命令行获取用户输入而不是通过GUI实现的,仍然需要FSM。
我仍然不确定在每个时间点验证用户操作的FSM是否是一种流行或有效的设计。
这似乎可能会耗费太多精力,并要求GUI已经完全预先设定,并且所有可能的用户操作都已映射到特定状态取决于特定结果。
鉴于目前还没有任何评论只有一个回复,我倾向于认为验证控件上用户操作的FSM实际上并未被使用。
如果您对此有任何意见或建议,欢迎发表。谢谢。