gpt4 book ai didi

model-view-controller - 矢量图形编辑器的设计模式

转载 作者:行者123 更新时间:2023-12-04 08:24:32 26 4
gpt4 key购买 nike

PowerPoint 或 Illustrator 等矢量图形应用程序的最佳实践设计模式/架构是什么?专门用于在复杂图形对象(父子关系、形状和布局上的几何约束)上构建工具-用户交互和操作。

关于以下方面的任何想法或经验:

  • 行为-装饰器-行为堆栈/服务- View - View 模型Microsoft
  • EditPolicy - EditPart - View - 模型 GEF
  • 最佳答案

    Controller 的嵌套有限状态机。 View 与 Controller (MVC 或类似的)的分离。它总是对我有用。

    更新:我有时间阅读您的链接。一些背景:我研究和研究这些类型的编辑器已经 25 年了。我的建议,嵌套 FSM 作为 Controller 、MVC 或类似的,可能被称为 super 设计模式,因为您可以看到这些设计组件多年来多次出现在不同的设计中,每次为不同的组件使用不同的名称。微软专利的荒谬之处在于这些想法非常古老,只是赋予了新名称。如果您查看您提供的其他链接,您会发现有很多相似之处(EditPart == Behavior == Finite State Machine)。

    所以 super 模式如下:嵌套有限状态机,如哈雷尔状态图。 super 状态处理跨多个子状态的常见行为;子状态处理更具体的行为。超状态可以实现为父类(super class),也可以实现为单独的对象实例。无论哪种情况,在整个应用程序中,抽象地都有一个当前状态,即子状态。如果子状态无法处理输入消息,则它会进入 super 状态(仅使用继承或将消息传递给堆栈中的另一个对象)。

    状态转换由输入消息触发。输入消息可能是用户对装饰的操作(装饰可能被装饰为要调用的子状态的名称)。或者它可能是一个键盘事件。您可能会看到一条名为命令的输入消息。

    每个状态都有一个入口方法,它执行初始化,还有一个导出方法,它撤消任何未提交的更改。更改通常使用事务提交,提交的事务堆栈构成撤消堆栈。

    关于model-view-controller - 矢量图形编辑器的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5252287/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com