【发布时间】:2010-04-10 19:10:46
【问题描述】:
我想设计形状类。我需要区分几种不同的形状:
-Point
-Line
-Triangle
-Circle
-Polygons
这个类的主要目的是计算两个形状之间的距离。
我有计算这些距离的所有方法,但我想有一个可以使用的方法,它应该是这样的:
float Distance(Shape a, Shape b)
最简单的方法是放很多 if 语句,然后调用正确的方法,但这绝对不是 OOP。
如何以 OOP 风格设计这样的类?
【问题讨论】:
-
这个问题看起来像是个笑话,因为在很多面向对象的编程书籍和教程中都有形状层次结构的例子:)
-
距离函数会给出什么?中心到中心?最近的边?
-
是的,这个任务本身就是家庭作业的味道。
-
@ElectricDialect:我已经阅读了一些教程,但我还没有找到一个层次结构中包含点、线和圆的教程。 @Aarounaught:两个最近点之间的距离,但这没关系。我已经拥有所有这些方法,但我只需要以 OOP 风格进行。 @Johannes:相信我,这不是功课。
-
@Tomek:你已经有一种方法可以计算任意两个任意形状之间的边缘距离,甚至是不等边的形状?
标签: c# .net class-design shapes