我对OOP比较新.有时我遇到的情况是我不确定方法应该去哪里.我会尝试给出一个最小的例子; 我希望我不要过分夸大它.
假设我有一个Point持有点位置的Line类,以及一个包含直线方程的类.我现在需要一种计算a Point和a 之间(垂直)距离的方法Line.我可以:
在OOP中是否有一种首选方式,还是依赖于语言?在C++中,一个独立的函数是一个选项,但是由于我对Java的有限理解,它不允许独立的函数.在那种情况下你会创建一个类PointLineDistanceCalculator吗?
Point您的第三个选择是不在同类中的其他地方,这Line是最好的选择。
Points不应该知道Lines,反之亦然。否则,它们就会紧密耦合。
http://en.wikipedia.org/wiki/Loose_coupling
然而,可能还有其他一些类知道这两者。
在java中,我可能会创建一个第三Distance类或者DistanceCalculator可以计算多个对象之间的距离。
Distance.between(Point a, Point b)
Distance.between(Point a, line l)
Run Code Online (Sandbox Code Playgroud)
ETC