Stiamo scrivendo un SDK per un programma CAD e ci siamo imbattuti in un leggero disaccordo su un tipo specifico di funzione (non solo disaccordo tra persone diverse, anche disaccordo tra le mie due metà del cervello).. Problema SDK netto, quale strada da percorrere?
Immaginate che ci siano molte classi per tipi di curve specifiche (ellisse, cerchio, arco, linea, bezier ecc.). Tutte queste classi possono essere rappresentate da una curva di Nurbs. Quindi dovremmo mettere il cerchio-> funzione di NURBS su Circle:
public NurbsCurve Circle.ToNurbsCurve()
{
// Return a circular NurbsCurve or null if the Circle is invalid.
}
o dovrebbe essere una statica sulla NurbsCurve:
public static NurbsCurve NurbsCurve.CreateFromCircle(Circle)
{
// Return a circular NurbsCurve or null if the Circle is invalid.
}
Un'opzione sarebbe un metodo di estensione. 'Public NurbsCurve ToNurbs (questo cerchio Circle) {}' –
@Chris, che non avrebbe davvero senso qui ... è il Circle che sa come dovrebbe essere convertito in una NurbsCurve, non nella classe NurbsCurve. I metodi di estensione sono una funzione interessante, ma molte persone (incluso me) li usano eccessivamente. –