我正在尝试解决3D空间中的路径规划问题并取得了成功,但是我不知道我的解决方案是否具有足够的松散耦合。我有三个源文件,每个文件包含一个公共类:Vertex.java,VertexHeuristicComparator.java和PathPlanningUtil.java。
顶点包含三个字段:3D空间中的Point
(location
),对另一个顶点的引用(parent
)和保持与目标顶点距离的float
(distToGoal
)。路径规划中使用了一组顶点来探索环境并找到最佳路径。
VertexHeuristicComparator实现Comparator<Vertex>
。我已覆盖compareTo方法以在比较中使用distToGoal
和parent
。该方法有效地定义了最佳顶点是什么,以便路径规划可以优先搜索。
PathPlanningUtil包含方法planPath(Point start, Point goal)
。此方法返回一个ArrayList<Vertex>
,该VertexHeuristicComparator
表示3D空间中从起点到目标的路径。此方法使用VertexHeuristicComparator
来确定如何通过探索VertexHeuristicComparator确定为“最低”顶点的顶点来探索环境。
由于planPath
是路径规划逻辑的核心。更改VertexHeuristicComparator源代码将导致planPath
返回不同的路径。彻底更改的输出对VertexHeuristicComparator的更改是否不好耦合?
最佳答案
为了回答您的直接问题,
将VertexHeuristicComparator更改为以下内容是否不好耦合?
彻底更改planPath的输出?
不会。如果对VertexHeuristicComparator
的更改导致对PathPlanningUtil
代码的更改,则耦合将很差(紧密)。只要您可以更改一个类的代码而不必更改另一个类的代码,就可以实现相当宽松的耦合。
关于java - 这是不好的耦合吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32130932/