gpt4 book ai didi

java - OOP设计问题

转载 作者:行者123 更新时间:2023-12-02 07:59:10 25 4
gpt4 key购买 nike

我正在做一个关于图论的项目,并正在实现一些图算法。

我想分开

  • 算法的代码(例如 BFS、DFS...),
  • 图形处理代码(例如图形类本身、边和顶点处理等),以及
  • GUI相关代码

我有 2 个与应用程序设计相关的问题:

  1. 我应该为每个使用单独的包吗?此外,任何人都可以添加有关连接并使这些部分协作的任何内容都会很有帮助。

  2. 算法代码应该使用什么设计模式?它应该是静态类、单例还是任何其他建议?

最佳答案

没有通用答案。该决定取决于您是否计划重用您正在开发的系统以及如何重用。

正如您所指定的,使用众所周知的设计模式是一个好主意。我不知道您的架构目标,但我可以推荐以下一般准则:

在自己的包中设计“模型”(数据结构)。该层应该只包含系统的“模型”和“状态”表示:图形、顶点、方向、权重等。该层很可能还应该包含模型维护逻辑(向图形添加节点、获取节点、获取顶点、创建顶点、添加权重等)查看结构模式(复合、外观等),看看它们是否可以应用于您的模型。

在单独的层中实现算法。大多数时候,使这些组件“无状态”是一个好主意(静态函数在模型上执行操作)。查看行为模式(访问者、责任链、迭代器、解释器、命令等),看看是否可以应用它们中的任何一个。

使用观察者设计模式来设计“渲染”(显示、可视化)层。这种模式允许您将观察到的(模型)和 View 解耦,并最终为同一模型提供多种类型的 View 。

正如我所说,没有通用的解决方案。这些只是一些想法,其目标是实现解耦且易于维护和可重用的软件。

关于java - OOP设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9151749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com