这是正确的建模方法吗?类图示例

时间:2013-11-01 09:43:19

标签: class uml class-diagram diagramming

我正在尝试模拟国际象棋比赛。我的UML新手思维是这样的:
GameEngine只有一个棋盘和两个玩家(继承自Player),当GameEngine被摧毁时,这些(组合)也是如此。棋盘可以包含多达32个西洋棋棋子,每个玩家可以控制/引用16个西洋棋棋子(聚合)。玩家需要调用或访问董事会的某些方法(定向关联)。 这是正确的还是至少接近?

enter image description here

1 个答案:

答案 0 :(得分:0)

您对PlayerHuman进行了抽象CPU。我认为你所有的箭都必须使用普通箭Player。例如:

class Chessboard {
  Player p1;
  Player p2;
}

这是更方便的方式,您可以在运行时更改您的玩家和不同的游戏模式:人与人,人与CPU,甚至CPU与CPU

相同的更改适用于GameEngine。

顺便说一句,我不认为玩总控制的西洋棋棋子是个好主意。所有对Chessman坚持的控制权都是Chessboard的责任,当玩家想要轮流行动时,玩家只需向他发送消息。

这种改变让你可以为每桌玩家提供多个棋盘用于多桌游戏。