我有一个生成FSM的小型可视化系统,用户可以使用框(状态)绘制一个图形,并将它们与线条(转换)连接起来。最后,当用户按下在运行时定义FSM的“generates”按钮时,这将生成c#代码。
我希望我的用户能够更改诸如图形名称、转换名称、状态名称、删除节点、删除转换以及第一次保存之后的更多内容,因此,我需要一种处理重构的方法。
我正努力寻找一种非侵入性的方法来实现这一目标。我试着对我不久前做的一个do/redo算法进行了修改,但是无法得到一些好的东西。
有人能解释如何创建这样一个系统,使其尽可能减少对现有代码的干扰吗?
干杯。
发布于 2015-04-16 09:52:05
我建议将状态保持在图形数据结构中,并在修改FSM时重新生成C#代码,这是一个简单的解决方案,可以任意修改FSM-数据结构,而不必担心将上述修改应用于生成的代码。
为了实现基本FSM-数据结构的“重构”,您可以使用类似于指挥模式的东西来封装重构和撤消/重做操作。
https://stackoverflow.com/questions/29670928
复制相似问题