最佳实践,扩展类

我正在开发XNA游戏(C#),我想知道有什么最好的做法,有不同types的垫。 例如,我有两种types的垫:

  • 刚刚向左移动的Pad(减lessX坐标)
  • Pad向左移动并上下移动(Y坐标上的cosfunction)

后来我想实现更多的垫。 我知道我可以检查Update方法中的types,并做一个适当的方法来更新,但我认为它可以做得更好。 我有垫类:

 class Pads static list of pads; public void draw(); public static void drawAll(); //Iterate through list and draw each item public void update(); public static void updateAll(); //Iterate through list and update each item 

我应该创建另一个类,例如可以扩展PAD的cosPad吗?

我真的不知道如何使一切合乎逻辑。

如果垫只有不同的运动/行为,我会创建一个单独的类来控制这一点,并使用组合获得所需的效果。

 public class Pad : GameObject{ Vector2 Position; Behavior B; Update(GameTime t){ B.Update(this, t); } } public class Slide : Behavior{ Update(GameObject o, GameTime t){ o.Position.X = sin(t); } } public class Circle : Behavior{ Update(GameObject o, GameTime t){ o.Position.X = sin(t); o.Position.Y = cos(t); } } 

您可以创建一个代表可移动Pad的抽象类Pad ,然后您的Pads类将拥有这些Pad的列表。

Pad类可以有一个实现的绘制方法,如果两者都是通用的,那么抽象的Update(GameTime)方法。

你会派生你的2具体类PadMoveLeft和从Pad PadCosine将实施Update