Piszemy SDK dla programu CAD i mamy niewielki spór dotyczący konkretnego typu funkcji (nie tylko nieporozumień pomiędzy różnymi osobami, ale także braku zgody między dwiema połówkami mózgu)..NET SDK problem, którą drogą iść?
Wyobraź sobie, że istnieje wiele klas dla określonych typów krzywych (elipsa, okrąg, łuk, linia, beziera itp.). Wszystkie te klasy mogą być reprezentowane przez krzywą Nurbs. Więc powinniśmy umieścić Circle-> funkcję NURBS w kółko:
public NurbsCurve Circle.ToNurbsCurve()
{
// Return a circular NurbsCurve or null if the Circle is invalid.
}
czy powinien to być statyczne NurbsCurve:
public static NurbsCurve NurbsCurve.CreateFromCircle(Circle)
{
// Return a circular NurbsCurve or null if the Circle is invalid.
}
Jedną opcją są metody przedłużania. 'public static NurbsCurve ToNurbs (to koło Circle) {}' –
@Chris, to naprawdę nie ma sensu tutaj ... to Circle wie, jak powinien to być konwerter do NurbsCurve, a nie do klasy NurbsCurve. Metody rozszerzeń są fajną funkcją, ale wiele osób (w tym ja) nadużywa ich. –