我有一个用于生成FSM的视觉系统,用户可以使用框(状态)绘制图形并将其与线条(过渡)链接。当用户按下在运行时定义FSM的“生成代码”按钮时,最终会生成c#代码。
我希望我的用户能够在第一次保存后更改图形名称,转换名称,状态名称,删除节点,删除转换等内容,因此,我需要一种方法来处理重构。
我正在努力寻找一种非侵入性的方法来实现这一目标。尝试应用我之前制作的do / redo算法的修改,但无法获得好的东西。
有没有人可以解释如何创建这样一个系统,尽可能减少对现有代码的干扰?
干杯。
答案 0 :(得分:1)
我建议将状态保留在图形数据结构中,并在FSM更改时重新生成C#代码,这是一个简单的解决方案,允许任意修改FSM数据结构,而不必担心应用所述修改生成的代码。
为了实现基本FSM数据结构的“重构”,您可以使用Command Pattern之类的东西来封装重构和撤消/重做操作。