语境
我正在处理一个大型的、嵌套的、结构化的文档,它以场景图的形式显示在屏幕上。用户需要有能力修改这个文档——我目前正在使用功能拉链来实现。
现在,目前,我正在每次更改后重新绘制整个文档。但是,当使用场景图时,我只需要修改改变的部分。
然而(不打算开始一场激烈的战争),我越来越开始觉得这个问题从根本上是一个关于状态的问题,而不是关于函数的问题。尤其:
用户操作(上、下、左、右、插入字符、删除字符)是关于操作状态,而不是进行计算
文档一次只有一份,只被一个线程点击,分享没有收获
当前方法
我使用功能拉链来存储文档并提供状态操作功能。然后,我不断地重画。
我怀疑可能是正确的解决方案:
将所有内容存储在一个场景图中,沟函数拉链,修改后直接修改场景图变化的部分。
技术问题:
其他人处理过这个吗?这个问题有技术上的正式名称吗?(相当于“餐饮哲学家”的并发?)这个问题有没有完善的解决方案?
免责声明
这个问题有点软。我无法粘贴最小损坏案例的代码示例,因为
* my code is around 5K LOC
* it's not for me to share publicly
但是,这是一个真正的技术解决方案,我希望其他人可以分享他们的答案
谢谢!