我正在构建一个使用d3js渲染的工作流工具。我最初在"编辑器中创建了该工具。模式,用户可以在工作流中拖动和操作节点和依赖项。现在我很难理性化正确的方法来使我当前的绘制程序支持"查看"和"编辑"模式和保持干燥。
我的初始代码基本上是一个长抽奖程序:
在模式行为或SVG结构不同的每个函数中添加开关逻辑似乎是意大利面条代码之路。
对于每种模式都有3个独立的程序感觉同样错误 - 但我开始认为有一个独特的"平局"每种模式的程序更灵活,有三种模式。
也许我在思考'关于这一切都错了。也许我应该首先以只读模式渲染所有内容然后应用任何"编辑"或"监控"之后的模式行为或视觉添加。
什么是以干燥的方式支持多个相似但不同的抽奖程序的最佳方式?