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

Design patterns 使用MVC模式时,逻辑/行为放在哪里?,design-patterns,model-view-controller,Design Patterns,Model View Controller,假设我和我的朋友正在为Android编写一个国际象棋游戏,并且想要使用MVC模式 我没有MVC模式的经验,也不知道在哪里实现核心逻辑和UI行为 逻辑必须位于何处(如验证和移动) UI行为必须位于何处(例如游戏板和棋子的动画)?基本上,规则(游戏规则或业务规则)位于MVC的模型端 控件只是向模型请求服务并确定视图外观的“中间人”。 您的基本类,如GameState、GameRule、Player或Pawns必须定义为模型。基本规则(游戏规则或业务规则)位于MVC的模型端 控件只是向模型请求服务并确

假设我和我的朋友正在为Android编写一个国际象棋游戏,并且想要使用MVC模式

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

逻辑必须位于何处(如验证和移动)

UI行为必须位于何处(例如游戏板和棋子的动画)?

基本上,规则(游戏规则或业务规则)位于MVC的模型端

控件只是向模型请求服务并确定视图外观的“中间人”。 您的基本类,如GameState、GameRule、Player或Pawns必须定义为模型。

基本规则(游戏规则或业务规则)位于MVC的模型端

控件只是向模型请求服务并确定视图外观的“中间人”。 您的基本类,如GameState、GameRule、Player或Pawns必须定义为模型。

基本规则(游戏规则或业务规则)位于MVC的模型端

控件只是向模型请求服务并确定视图外观的“中间人”。 您的基本类,如GameState、GameRule、Player或Pawns必须定义为模型。

基本规则(游戏规则或业务规则)位于MVC的模型端

控件只是向模型请求服务并确定视图外观的“中间人”。
您的基本类,如GameState、GameRule、Player或Pawns必须定义为模型。

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

您还可以在模型中存储定时游戏的时间弹性


如果你把它作为一个响应性很强的网络应用,你可能会对android、平板电脑和桌面有不同的看法。可能是鼠标用户和触摸屏的视图

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

您还可以在模型中存储定时游戏的时间弹性


如果你把它作为一个响应性很强的网络应用,你可能会对android、平板电脑和桌面有不同的看法。可能是鼠标用户和触摸屏的视图

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

您还可以在模型中存储定时游戏的时间弹性


如果你把它作为一个响应性很强的网络应用,你可能会对android、平板电脑和桌面有不同的看法。可能是鼠标用户和触摸屏的视图

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

您还可以在模型中存储定时游戏的时间弹性


如果你把它作为一个响应性很强的网络应用,你可能会对android、平板电脑和桌面有不同的看法。可能是鼠标用户和触摸屏的视图

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

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

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

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

模型=表示游戏的数据对象(例如玩家信息、棋盘、棋子和分数,但实际上没有逻辑/行为)

查看=用户界面元素、用户界面行为(如动画、更新图形等)——但不包括业务逻辑、状态管理和持久性。视图通常是“反应式”和“交互式”的,这意味着它们根据模型更改而更改,用户使用它们与一个或多个控制器进行交互


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

模型=代表您的游戏的数据对象(例如球员信息、棋盘、棋子和分数,但实际上没有逻辑/行为)

视图=用户界面元素、用户界面行为(如动画、更新图形等)-但不包括业务逻辑、状态管理或持久性。视图通常是“反应式”和“交互式”的,意味着它们会根据模型更改而更改,用户使用它们与一个或多个控制器交互

控制器=验证、逻辑、模型/状态管理、持久性等。控制器将公开视图可以作为操作调用的方法(如movi)