c# - 我应该如何在 .NET 中安排我的项目/类以避免循环依赖

标签 c# user-interface oop visualization circular-dependency

我的程序正在尝试绘制 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/

相关文章:

c# - 我如何实现这个公共(public)可访问枚举

css - 为什么 <ul> 显示 :inline does not bring list items with the document flow as <ul> with display:inline-block does

c# - 静态 From 和 To 方法与隐式和显式 Casting 方法

c# - 如何在认证时转发用户消息

c# - 应用程序洞察中自定义对象的属性在哪里

python - 在调用函数时如何防止 GUI 卡住? (PyQT4, Python3)

java - 如何在Java中居中一个窗口?

php - 有什么好的 php5 OOP 教程网站吗?

php - 为什么我不能使用这样的开关?

javascript - 使用原型(prototype) JavaScript - 最佳实践