我正在设计纸牌游戏,我想要遵循MVC模式。这个概念是否正常?它的语言不可知(不是用任何实际的编程语言编写的)。
class GameModel
{
Player p[maxPlayers];
Deck d;
Rules r;
method nextTurn()
{
p[activePlayer].makeTurn( ...some paramaters...);
...
}
method addObserver(int classID, int index, Observer o)
{
switch(classID)
{
case id_model:
this.addObserver(o);
break;
case id_deck:
d.addObserver(o);
break;
case id_player:
p[index].addObserver(o);
break;
...
}
}
}
此外,View需要知道诸如"这个播放器有多少张牌?",我应该写(在模型中)方法如下:
method cardCount(int playerNr)
{
return p[playerNr].cardCount();
}
或者我应该通过Observer模式解决这个问题(View会观察玩家,他们会通知View有关抽取或投掷的牌)。
提前感谢您的建议!
卡罗琳