Ho una classe che contiene solo dati, in particolare raccolte di dati, si chiama * BezierSplineData :
class BezierSplineData
{
public List<BezierSplineControlPoint> ControlPoints; // ControlPoints that can change the shape of the spline.
public List<BezierSplinePoint> Points; // Actual points in the 3D world that represent the spline.
}
BezierSplineControlPoint ha solo 3 campi:
- posizione
- FirstTangentPosition
- SecondTangentPosition
BezierSplinePoint solo 1:
- posizione
Un'altra classe chiamata BezierSplineCalculator , viene utilizzata per calcolare i punti 3D per un set di BezierControlPoint.
class BezierSplineCalculator
{
public BezierSplineData Data;
private void Recalculate()
{
// Code that will recalculate the Data.Points based on the Data.ControlPoints;
// Essentially generates the actual spline.
}
}
Ora la classe BezierSplineCalculator può avere metodi come AddControlPoint (BezierSplineControlPoint controlPoint) e altri metodi come RemoveControlPoint , InsertControlPoint e probabilmente di più, ciò causerebbe un ricalcolo della spline.
La mia domanda è, non sembra giusto che io abbia una classe separata solo per quello, dato che dovrei fare riferimento a questi Dati abbastanza spesso, diciamo che ho bisogno di renderizzare BezierSpline, vorrei creare un BezierSplineRenderer classe e accedi al campo Dati della classe BezierSplineCalculator .
Si tratta di un odore di codice che tiene conto del fatto che queste classi sono correlate (da vicino credo), dovrei mantenere i dati e la calcolatrice in una classe?