使用MVC模式时,逻辑/行为在哪里?

时间:2014-05-29 19:00:52

标签: design-patterns model-view-controller

假设我和我的朋友正在为Android编写国际象棋游戏,并希望使用MVC模式。

我没有使用MVC模式的经验,也不知道在哪里实现核心逻辑和UI行为。

必须在哪里找到逻辑(例如验证和移动)?

必须在哪里定位UI行为(例如动画游戏板和棋子)?

4 个答案:

答案 0 :(得分:1)

基本上规则(游戏规则或业务规则)都在MVC的模型方面。

控件只是“中间人”,它要求Model提供服务并确定View的外观。 你的基本类如GameState,GameRule,Player或Pawns必须定义为Models。

答案 1 :(得分:1)

游戏逻辑将在Controller类的服务层调用中。您可以使用jsp或任何其他模板引擎进行查看。在视图中显示棋盘,并使用javascript实现拖放逻辑来移动棋子。使用ajax调用提交移动。

答案 2 :(得分:1)

模型 =代表您游戏的数据对象(例如玩家信息,棋盘,棋子和分数,但几乎没有逻辑/行为)

查看 = UI元素,UI行为(例如动画,更新图形等) - 但没有任何资格可用作业务逻辑,状态管理和持久性。观点通常是"反应"和#34;互动"意味着它们会根据模型更改进行更改,并且用户使用它们与一个或多个控制器进行交互。

控制器 =验证,逻辑,模型/状态管理,持久性等。控制器将公开View可以作为Actions调用的方法(例如移动peice)。在调用这些操作方法时,模型可能会更改,以响应模型更改,您的视图应更新(通常通过数据绑定,事件,众所周知的注册接口或回调方法。

答案 3 :(得分:0)

我都不会把它放在lib部分。您可以在模型中存储移动及其历史记录,然后在控制器中调用移动,但在lib部分的文件中执行大量验证。

您还可以存储模型中定时游戏的时间。

如果你把它作为一个响应式网络应用程序,你可以有不同的视图Android,也许平板电脑和桌面。也许是鼠标用户和触摸屏的视图。