gpt4 book ai didi

java - 一个函数应该属于两个类中的一个/两个还是独立的?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:33 27 4
gpt4 key购买 nike

我对 OOP 比较陌生。有时我会遇到不确定方法应该去哪里的情况。我将尝试举一个最小的例子;我希望我不要太过分,不要让它过于抽象。

假设我有一个保存点位置的 Point 类和一个保存直线方程的 Line 类。我现在需要一种方法来计算 PointLine 之间的(垂直)距离。我可以这样做:

  • Point::distance_to_line(L 线)
  • Line::distance_to_point(P点)
  • 独立函数:point_line_distance(Line L, point P)

一般来说,OOP 中是否有首选方式,或者它是否依赖于语言?在 C++ 中,独立函数是一个选项,但根据我对 Java 的有限理解,它不允许独立函数。在那种情况下,您会创建一个类似 PointLineDistanceCalculator 的类吗?

最佳答案

不在 PointLine 类中的其他地方的第三个选项是最佳选项。

Points 不必知道 Lines,反之亦然。否则,它们将紧密耦合。

http://en.wikipedia.org/wiki/Loose_coupling

但是,可以有一些其他类知道这两者。

在 java 中,我可能会创建第三个 Distance 类或 DistanceCalculator 来计算多个对象之间的距离。

Distance.between(Point a, Point b)

Distance.between(Point a, line l)

等等

关于java - 一个函数应该属于两个类中的一个/两个还是独立的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24873071/

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