【发布时间】:2011-01-25 16:16:06
【问题描述】:
我们正在为 CAD 程序编写 SDK,但在特定类型的功能上遇到了轻微的分歧(不仅仅是不同人之间的分歧,还有我的两个大脑半部之间的分歧)。
想象一下,针对特定曲线类型(椭圆、圆、圆弧、直线、贝塞尔曲线等)有很多类。所有这些类都可以用 Nurbs 曲线表示。那么我们是否应该将 Circle->Nurbs 函数放在 Circle 上:
public NurbsCurve Circle.ToNurbsCurve()
{
// Return a circular NurbsCurve or null if the Circle is invalid.
}
或者它应该是 NurbsCurve 上的静态:
public static NurbsCurve NurbsCurve.CreateFromCircle(Circle)
{
// Return a circular NurbsCurve or null if the Circle is invalid.
}
【问题讨论】:
-
一种选择是扩展方法。
public static NurbsCurve ToNurbs(this Circle circle) {} -
@Chris,这在这里没有任何意义......知道它应该如何转换为 NurbsCurve 的是 Circle,而不是 NurbsCurve 类。扩展方法是一个很酷的功能,但很多人(包括我)过度使用它们