actionscript-3 - MVC - 理论问题

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

这更多的是一个理论问题,而不是特定于语言的问题,但我主要指的是 AS3。

假设我有一个应用程序,可以通过几个导航级别显示按钮。

例如artistsAlphabetical->albums->songssongsAlphabetical->songalbumsAlphabetical->album->song

因此,我们建立了一个包含所有歌曲的模型(数据)(最小公分母 - 歌曲对象中包含艺术家/专辑/年份等信息)

假设我们没有专辑的数据集,需要从歌曲中提取数据。或者我们确实有一个数据集并且需要将它们匹配。

这应该归入哪里?模型还是 Controller ?

我可以找到其中任何一个的原因,但我想知道“更正确”的方法是什么。

接下来我们有带有所有按钮的 View 来进行排序。

当您单击排序按钮Artists-A - 即 View 向 Controller 发送消息以执行某些操作(获取以 A 开头的艺术家的字母顺序列表 )。最终结果应该是一个新的(必要时分页 View ),其中包含每个艺术家的按钮。

MVC 的哪一部分应该负责每个步骤?

生成以 A 开头的艺术家列表

Controller 会说 - '嘿,模特 - 现在以 'A' 开头的艺术家!'

或者,它会更像“模特 - 向我发送所有艺术家的列表,我需要找到 A-dawgs”吗?

本质上应该由模型进行排序(并在可能/需要时缓存它),还是应该将逻辑放在 Controller 下,并且模型可以存储缓存?

因此,一旦我们有了艺术家列表,我们就需要为所有适合屏幕的艺术家创建一个按钮以及一些上一个/下一个按钮。谁应该创建按钮?

应该有一个 View Controller 吗?一个只处理创建 View 所需的逻辑的子 Controller ?或者逻辑会成为 View 的一部分吗?在我看来,应用程序的 Controller 就像“不在我的工作描述中......我给了你一个列表,你需要休息取决于你”

我觉得我在 MVC 的两种 View 之间存在冲突,一种 (mvC) - Controller 像母亲一样工作,模型是一个荣耀的数据持有者, View 管理 DisplayObjects 。或者(MVc),其中 Controller 是管理者/委托(delegate)者,确保模型和 View 正确通信,以便模型和 View 具有相当数量的逻辑,并且 Controller 将处理沟通并委托(delegate)顶层交互。

虽然我在 AS3 中完成大部分工作,但我很好奇其他语言将如何处理这个问题。例如,在 PHP 框架中,您不需要像在 as3 中那样担心按钮逻辑和事件处理,在 as3 中您需要监视垃圾收集,因此其中一个组件的工作负载可能与 Cinder++ 中的不同,处理或 ActionScript 应用程序。

最佳答案

我不知道AS3。我既使用 Spring MVC/Java,它确实可以让你使用任何一种方法,也使用 Ruby on Rails,它支持智能模型和哑 Controller 。我更喜欢智能模型/哑 Controller 方法。

所以对我来说,任何与数据排序和过滤有关的事情都绝对应该在模型中完成,从歌曲列表中提取专辑的过程也应该如此。

在 Rails 中,我毫无疑问会将创建按钮集的过程放在 View 层中。如果涉及实际逻辑,则会进入 View 辅助方法。

关于actionscript-3 - MVC - 理论问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4868239/

相关文章:

apache-flex - 如何在炼金术中将 ByteArray 传递给 C 代码?

Flash AS3 求值()

c# - 这是 MVC 吗?我使用了什么 'design pattern'?

java - MVC - 我需要在 View 中使用 Controller 吗?

node.js - 处理 Javascript 渲染与服务器端模板的最佳方式

actionscript-3 - ActionScript 3 缩放和滚动问题

actionscript-3 - 如何检测是否在 Actionscript 3 中按下了删除键?

java - 正确使用单例设计模式

java - OOP:将设置传递给 Builder 类

design-patterns - 对象级事务管理模式