Skip to main content

Coding - C# - Complex Constructors

· One min read

When doing complex objects using an object to help the building is welcome.

public class Complex
{
double x;
double y;
double z;

float height;
float width;

string foreground;
string background;

public Complex()
{
x = 1.456;
y = 1.234;
z = 1.789;

height = 10.12;
width = 10.14;

foreground = "#FFF";
background = "#FA1";
}

}

In this way you remove some complexity of just adding steps in your constructor to something more abstract and can contain the logic.

public class Complex
{
public double X { get; set; }
public double Y { get; set; }
public double Z { get; set; }

public double Height { get; set; }
public double Width { get; set; }

public string Foreground { get; set; }
public string Background { get; set; }

public Complex(ComplexBuildHelper buildHelper)
{
buildHelper.Construct(this);
}

}

public class ComplexBuildHelper
{
public void Construct(Complex reference)
{
BuildPosition(reference);
BuildDimension(reference);
BuildCharacteristics(reference);
}

private void BuildPosition(Complex reference)
{
reference.X = 1.456;
reference.Y = 1.234;
reference.Z = 1.789;
}

private void BuildDimension(Complex reference)
{
reference.Height = 10.12;
reference.Width = 10.14;
}

private void BuildCharacteristics(Complex reference)
{
reference.Foreground = "#FFF";
reference.Background = "#FA1";
}
}