2013-02-26 56 views
3

如果您有组合设计模式(或任何图/节点类型系统)的实现,哪种设计模式最能描述连接节点并在类实例之间创建链接的过程?可以使用什么设计模式来连接组合元素?

我目前的工作示例使用工厂模式来构造每个类实例,但现在我正在考虑将它们连接到单独的代码区域或基于文件中的数据。

我在想,如果它可能是'建设者'模式,但我见过的例子都非常简单,我发现它基于这些例子将模式应用到我的域中是一个非常大的跳跃。也许有另一种模式更适用于我的域,并引用了复合模式。例子和参考将不胜感激。

非常感谢 d

编辑:多一点点的调查已经变成了一个不错的博客关于创建模式。他们说,根据经验,“建设者”经常建造复合材料。

http://sourcemaking.com/creational_patterns

+0

+1对于有趣的问题和链接sourcemaking.com - 不错的网站! – ngm 2013-02-27 10:26:33

回答

1

如果你想在同一时间构建整个组合元件制造商是一个很好的最佳的选择。例如,如果您在城市中建立道路图,并且您希望建造整个城市 - 使用建造者模式。你可以添加子建设者到你的建设者添加neighberhoods,所以你的建设者班级不会太大 - 只是为bulder做复合。 但是如果你希望在复合已经存在之后添加元素,我建议如下: 如果你知道在哪里添加元素,你可以为你的组合提供迭代器,并为迭代器提供添加方法给你的索引或新的地方添加您的元素。例如,如果你已经对树进行了排序,那么迭代器将具有函数add,该函数将根据其在树中的位置知道在哪里添加元素。 另一种选择是,如果您需要将组合元素添加到每个地方并非真正没有的组合中,例如,您用街道建造城市,并且希望在最短的街道旁边添加街道。好吧,在这种情况下,我可能会使用谓词或某种类型的过滤器,它们将会是复合类型中的静态内部类。

相关问题