actionscript-3 - Model View Controller - 在哪里保持简单的逻辑

标签 actionscript-3 model-view-controller design-patterns

我经常看到 Model View Controller 模式的非常不同的实现,并且完全理解您应该适应和使用最适合您需要的东西,但我想知道在以太中保持简单游戏逻辑的优点/缺点/最佳实践是什么 Controller 或模型?

从本质上讲,我应该这样做的正确方法是什么?

对于这个简单的例子,玩家受到伤害,我列出了三种可能的处理方法:

1.

Controller :

_model.playerDamage - 15;
if (_model.playerDamage <= 0){
    _model.playerLives --;
    _model.restartLevel();
}

2.

Controller :
_model.playerDamage = 15;

模型:
function set playerDamage(value:int){
     playerDamage = value;
     updatePlayer();
}

function updatePlayer():void{
    if (playerDamage<=0){
         palyerLives --;
         restartLevel();
    }
}

3.

Controller :
_model.playerDamage = 15;
_model.addEventListener('playerChange', checkPlayerStatus);

function checkPlayerStatus(e:Event):void{
    if (_model.playerDamage<=0){
         _model.playerLives --;
         _model.restartLevel();
    }
}

模型:
function set playerDamage(value:int){
     playerDamage = value;
     dispatchEvent(new Event('playerChange'));
}

最佳答案

当然在模型中,因为您可能有多个 Controller (将来)以类似或相同的方式影响模型中的事物。 Controller 只是一种将 UI 事件转换为业务事件的机制。模型是处理逻辑的地方。

您可能会发现以下 stackoverflow 线程很有用:

  • Is the MVC-pattern a pure presentation-tier pattern?
  • What do I call the code that orchestrates my web application?

  • 尽管它们是特定于 Java 的,但这里讨论的想法是独立于平台的。

    希望有帮助。

    关于actionscript-3 - Model View Controller - 在哪里保持简单的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5351246/

    相关文章:

    actionscript-3 - ActionScript 3中基本声音功能的一些帮助

    c++ - Win32 MVC 模式实现

    c# - Request.IsAjaxRequest 不工作 mvc

    c# - 在 WCF 中的域层和服务层之间传输用户类型 - 建议的方法?

    构造函数中的 JavaScript 访问器属性

    actionscript-3 - 如果不调用 clearTimeout(), flash.utils.setTimeout() 是否会泄漏内存?

    javascript - 在 JavaScript 中编写一个正则表达式来匹配 $ 变量前缀语法(就像在 Bash 脚本中找到的那样)

    actionscript-3 - actionscript3 中的文本框自动调整大小

    javascript - 如何在模型和 Controller 之间使用sequelize发送查询结果

    java - 这真的是适配器模式的一个例子吗?