1

我目前正在为学校的一个项目工作。我们应该将用 Java 编写的井字游戏重构为更好的东西。给定的代码是一个大问题,用户界面不能很好地工作。

问题是游戏没有告知两位玩家的观点。所以,我应该实现观察者模式。

http://www.imgdumper.nl/uploads6/50a794d4ea6ba/50a794d4e2d9f-now.jpg

此图像是给定代码的 UML。

为了让它像真正的游戏一样工作,我假设我会创建一个如下结构:

http://www.imgdumper.nl/uploads6/50a7953c6c6b3/50a7953c64186-new.jpg

好的,我认为这是正确的。但这个项目的目的是将其重构为 MVC 模式。在学校提供的演示文稿中,我发现了这个方案:(请参阅 url 评论)

但我不知道如何将代码重构为满足 MVC 模式要求的东西。如果有人可以向我解释我应该如何做到这一点,那就太好了。比如,模型、控制器和视图是什么?

4

1 回答 1

1

我会在应用程序的当前视图层附近应用 MVC 模式。本质上,MVC 可以位于当前的非 UI 游戏逻辑之上,并且该逻辑可以封装在Service Layer中。

Model是:

  • SingleSquareState(X、O 或 NULL)
  • 游戏板(9 到 3n 大小)
  • 播放器

View显示棋盘——它本质上“是”棋盘,有 9 个(或 sizeOf(GameBoard))方格,可以变成 X、O 或 NULL——也许这里可以使用一个数组。避免在这里放太多逻辑,把它留给控制器。控制器告诉视图要做什么。

Controller告诉服务(下)玩家正在做什么。然后它从服务接收更新的 GameState 并告诉视图如何显示它。

Service(又名 GameState)跟踪所有玩家的游戏状态。它可能有一个控制器可以调用的称为 Move 的方法。该服务通过评估游戏状态等来验证该电影是否合法。然后该服务将更新的状态返回给控制器。

于 2012-11-17T14:12:58.323 回答