【发布时间】:2018-01-06 19:19:17
【问题描述】:
从面向对象编程的角度来看,给定两个类:Line(两个点)和 Point(两个浮点数)。哪个应该持有函数distance(),哪个应该持有midpoint()?
我最初的想法是midpoint()应该属于Line,distance()属于Point,因为Point应该知道它自己和另一个点之间的距离。而midpoint() 更多的是第三人称计算,它审查两个点。
但是,当我想到它时,我意识到一个点知道它的 X 和 Y 坐标。所以这两个函数都应该属于Point。这也将保存getX() 和getY() getter 的创建。 Line 可以为自己的 Points 调用这些函数。
或者 Line 应该同时具备这两个功能?
那么哪个是正确的?或者..还有其他选择吗?
【问题讨论】:
-
我总是将
distance放入Point,但是 而不是0,0 而不是另一个点。一些例子^len = (new SubstractedPoint(pointA, pointB)).distance()。显然,这不是性能方面的。
标签: java oop computer-science