我在纯C#中与MVC有关。
public int level;
public int money;
使用按钮AddLevel,触发广播消息
"PlayerView.LevelUP"
控制器接收消息PlayerView.LevelUp并执行以下操作:
PlayerModel.level++;
PlayerView.Update();
可用商店列表
显示项目列表
如果针对特定项目单击按钮购买,则会发送消息:
"ShopView.BuyItem.{id}, price"
问题出现在这里。我不知道如何从我的PlayerModel中减去钱。 我应该使用:
playerModel =- price;
或者我应该使用对PlayerController的引用并执行以下操作:
playerController.SubstractMoney(price);
当我们想要添加确认窗口时,问题可能会更复杂 - 您确定要购买该商品吗? 使用ConfirmationWindowView,ConfirmationController,ConfirmationModel?
答案 0 :(得分:1)
根据SOLID原则,您的每个班级都应承担一项责任。车间控制器与玩家控制器不同,与模型相同。将您的项目分为演示(视图),业务(控制器)和数据(模型)层。您的控制器将包含所有业务逻辑,而数据层将提供数据。
答案 1 :(得分:0)
您的方法完全取决于您希望如何拨打电话的方案。您可以为组合的商店+播放器创建单独的视图模型。
关于你的第3点 - ShopController: 您可以直接进行ajax调用或调用action方法(playerController.SubstractMoney(price);)这取决于您的调用。
对于确认窗口:您可以使用jquery模式弹出窗口或任何第三个弹出窗口,例如:foundation.js。创建一个全局弹出窗口(具有全局ID),然后您可以从任何视图调用它。