我的程序正在尝试绘制 grammars在 C# 和 WPF 中。我有:
1 DataStructure 项目,它描述了应该如何可视化的树结构。树中的每个节点都与文法中的一个符号相关。顶部的节点定义了该非终结符号的规则。
1 个 Drawer 项目,它描述了 WPF 中的用户控件。
我需要在我的数据结构中引用抽屉,因为当我遍历树时,我在每个节点上调用 DataStructure.draw();。我还需要在我的抽屉项目中引用数据结构,以便我可以响应用户点击我的 GUI,它会更新数据结构。
这会造成循环依赖,我尝试使用 Controller 类,但我不知道:/
最佳答案
你应该看看这里描述的访问者模式:
http://en.wikipedia.org/wiki/Visitor_pattern
这将允许您的数据结构项目接受任何类型的访问者,包括抽屉,但实际访问者的实现(在您的情况下是绘图逻辑)独立存在,不依赖于您不希望的方式.
关于c# - 我应该如何在 .NET 中安排我的项目/类以避免循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1893962/