【发布时间】:2012-03-23 14:28:16
【问题描述】:
我使用Composite pattern 来表示分层数据结构:
- 复合节点A
- 叶子1
- Leaf2
- ...
- 复合节点B ....
每个叶子代表一个特定的任务。首先,向用户呈现特定场景的默认任务列表,然后用户选中/取消选中某些任务(例如,使用 TreeView 控件),并在接受选择后,最终将数据保存到 XML 文件中。此数据稍后被 (1) 完成检查任务的引擎或 (2) UI 用于显示已选择任务的列表。
在某些情况下,某些(复杂的)任务需要额外的“内部”任务作为引擎生成复杂任务的先决条件。但是我不希望向用户显示那些“内部”任务,但它们仍被引擎使用并写入 XML 文件。
知道我可以有大量不同的场景类型(每个场景都有自己的 XML 文件),每个都有完全不同的任务列表/排列/默认选择,以及基于某些选择的不同“内部”任务一些任务,如何实现XML文件的读/写与UI+引擎的接口?一种从 UI 中隐藏“内部”任务,但通过将它们写入 XML 文件来跟踪它们,另一种允许基于场景类型进行不同的自定义?
【问题讨论】:
标签: c# design-patterns composite