可以使用什么样的设计模式来连接复合材料的元素?

时间:2013-02-26 12:22:28

标签: design-patterns builder composite

如果您有复合设计模式(或任何图形/节点类型系统)的实现,哪种设计模式最能描述连接节点和在类实例之间创建链接的过程?

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

我想知道它是否可能是'构建器'模式,但我看到的示例非常简单,我发现基于这些示例将模式应用到我的域中是一个很大的进展。也许还有另一种模式更适用于我的域,并引用了复合模式。非常感谢示例和参考。

非常感谢 d

编辑:一点点调查发现了一个关于创作模式的好博客。他们说,根据经验,“建造者”经常建造复合材料。

http://sourcemaking.com/creational_patterns

1 个答案:

答案 0 :(得分:1)

如果您希望一次构建整个复合元素,那么构建器是一个很好的选择。 例如,如果您在城市中构建道路图并且希望构建整个城市 - 请使用构建器模式。您可以向构建器添加子构建器以添加邻居,这样您的构建器类就不会太大 - 只需为bulder复合即可。 但是如果你想在复合材料已经存在之后添加元素,我建议如下: 如果您知道在何处添加元素,则可以为复合提供迭代器,并为索引或您希望添加元素的新位置的迭代器提供add方法。 例如,如果你有已排序的树,迭代器将有函数add,它将知道根据它在树中的位置添加元素的位置。 另一种选择,如果你需要在复合材料中添加元素,而在每个地方都没有,例如,你构建带有街道的城市,并且你希望在最短的街道旁边添加街道。好吧,在这种情况下,我可能会使用谓词或某种类型的过滤器,它将是复合类型中的静态内部类。