Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 工具栏的设计模式_Design Patterns - Fatal编程技术网

Design patterns 工具栏的设计模式

Design patterns 工具栏的设计模式,design-patterns,Design Patterns,我想知道哪种设计模式适用于实现具有多个项目的工具栏(分层工具栏) 我正在开发一个类似Photoshop的应用程序,其中包含许多工具组合(在按住ctrl键或不按住ctrl键的情况下选择工具,等等),在创建一个混乱之前,我在这里请求一个模式来解决这个问题 Leonardo.您没有说明语言或UI环境。不过,一般来说,您应该将菜单系统与需要执行的(编辑)命令分开设计 在处理命令时,命令模式提供了将单个命令挂接到菜单项的机制,还解决了如何实现n级撤消和重做。此部件必须使用命令模式。你甚至不用考虑菜单系统就

我想知道哪种设计模式适用于实现具有多个项目的工具栏(分层工具栏)

我正在开发一个类似Photoshop的应用程序,其中包含许多工具组合(在按住ctrl键或不按住ctrl键的情况下选择工具,等等),在创建一个混乱之前,我在这里请求一个模式来解决这个问题


Leonardo.

您没有说明语言或UI环境。不过,一般来说,您应该将菜单系统与需要执行的(编辑)命令分开设计

在处理命令时,命令模式提供了将单个命令挂接到菜单项的机制,还解决了如何实现n级撤消和重做。此部件必须使用命令模式。你甚至不用考虑菜单系统就可以完成所有这些工作

您可能会在所选语言中找到许多工具/库,它们将有助于构建菜单系统

将菜单选项链接到正确的命令将很容易。一般的想法是,每个菜单项都有一个函数doCommand(),但它所做的只是委托给链接命令的doCommand(),该命令可以执行您想要的操作

一般性问题-一般性答复