C#C
C#2y ago
eysidi

Dependency Inversion

Hello all, I had asked this before and was answered I need to implement dependency inversion

I have Shape abstract class and and interface which is responsible for drawing the shape.

c#
public interface IShapeDrawer
{
    void Draw(Vector2 position);
}
public abstract class Shape : IShapeDrawer
{
    public abstract string Name; // Name to display

    public abstract void Draw(Vector2 position); // Interface to abstract
}

The problem is: each shape uses position to calculate coordinates, for circle it would be single Vector2 for square, rectangle etc it would be 2 and for triangle it would be 3.

So I need an interface, right
c#
public interface ICoordinateCalculator
{
    Vector2 CalculateCoordinate(Vector2 position);
}

public interface IMultipleCoodinateCalculator
{
    Vector2[] CalculateCoordinates(Vector2 position);
}

public CircleCoordinateCalculator : ICoordinateCalculator
{
    Vector2 CalculateCoordinate(Vector2 position) => position;
}


Now my problem is, how do I implement this in my Shapeclass
Was this page helpful?