我正在做一个关于图论的项目,并且正在实现一些图算法。
我想分开
)
我有两个与申请的设计有关的问题:
发布于 2012-02-05 18:47:01
没有一般的答案。这个决定取决于您是否以及如何计划重用您正在开发的系统。
正如您所指出的,使用众所周知的设计模式是个好主意。我不知道您的架构目标,但我可以推荐以下一般指导方针:
在自己的包中设计“模型”(数据结构)。该层应该只包含系统的“模型”和“状态”表示:图、顶点、方向、权重等。这一层还应该包含模型维护逻辑(向图中添加一个节点、获取节点、获取顶点、创建顶点、添加权重等),查看结构模式(组合、外观等),并查看它们是否可以应用到模型中。
在一个单独的层中实现这些算法。大多数情况下,使这些组件“无状态”是一个好主意(静态函数在模型上执行操作)。查看一下行为模式(访问者、责任链、Iterator、解释器、命令等),看看是否可以应用其中的任何一种。
使用观察者设计模式来设计您的“呈现”层(显示、可视化)。此模式允许您分离观察到的(模型)和视图,并最终为同一模型提供几种类型的视图。
正如我所说,没有普遍的解决办法。这些只是一些旨在实现解耦、易于维护和可重用的软件的想法。
https://stackoverflow.com/questions/9151749
复制相似问题