我在我的程序中使用了一些静态“形状”类,并且由于每个静态类都需要执行相同类型的操作,我想知道是否有一种方法可以泛化方法调用。如果这些类不是静态的,我会简单地使用一个接口。
这是我的情况的要点:
public static Triangle
{
public int getNumVerts()
{
return 3;
}
public bool isColliding()
{
return Triangle Collision Code Here
}
}
public static Square
{
public int getNumVerts()
{
return 4;
}
public bool isColliding()
{
return Square Collision Code Here
}
}
我更喜欢做的是简单地调用Shape.getNumVerts()
,而不是我当前的 switch 语句:
switch (ShapeType)
{
case ShapeType.Triangle:
Triangle.GetNumVerts();
case ShapeType.Square:
Square.GetNumVerts();
}
如果我使用单例而不是静态类,我可以简单地使用多态性,但是要避免单例,并且我需要传递大量引用,以便我可以根据需要对各个形状进行处理。
有没有办法对这些静态类进行分组,或者 switch 语句是否和它一样好?