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

标签 java c++ oop

我对 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/

相关文章:

java - 创建匿名类的对象

java - Vaadin 中的导航器 - 尝试导航到未知状态

java - Android 应用程序在 Lollipop 上崩溃 - 服务 Intent 必须明确 :

c++ - 当 lpFileName 为卷时,FindFirstFile 返回 INVALID_HANDLE_VALUE

c++ - 避免内存泄漏

java - java父类(super class)调用的效果

java - java oracle 教程中带有锁对象的 Bow/Bower 示例

java - 'empty' 集合的目的是什么?

c++ - 文件的 Qt 选项卡

c++ - 为什么我的线速度返回为 0,即使我的重力似乎已设置