在学术上,我熟悉MVC范例,但实际上,我是一个新手。我正在实现我的第一个“真正的”MVC应用程序(AS3中的视频播放器)。
我正在创建一个播放列表(作为视频播放器的侧边栏)。播放列表是可滚动的,当您将鼠标悬停在某个项目上时,它会补间(展开)以显示更多信息。没有什么神奇的。
现在,将有数十个播放列表项。我想知道如何管理实际的M,V和C。
所以,我为每个播放列表项都有一个ItemModel,ItemView和ItemController的实例。当我想在播放列表中附加一个新项目时,我是否应该手动实例化一个新的ItemModel,ItemView和ItemController,将它们全部链接起来,将它们放在需要去的地方,并[可选]挂起引用它们?
我正在考虑的是创建一个Item类,它只是MVC三元组的一个简单包装器。然后,任何客户端与三元组的交互都必须由包装器委派。在这种情况下,Item“wrapper”负责
在一个包含更多对象的大型系统中,我可以看到自己采用了“MVCW”的范例(“W”对于每个三元组来说都是这样的包装器),所以有4个类,形式为XyzModel,XyzView,XyzController,和Xyz(或XyzWrapper,或XyzObject,或其他)。
但是......这并不是我以前读过的东西。而且我知道给定的模型可以有多个视图,那么它将如何发挥作用?
所有这一切的动机是,为我需要的每个新“事物”手动创建3个新对象似乎有点愚蠢(特别是在客户端交互将如此微小的情况下)。我怀疑这只是我对MVC范式的一种失误,而且经过修正后,我不仅会理解为什么“包装器”是一个坏主意,而且还会理解如何更好地管理实际对象。黑社会。
也许,我的设计方法完全错了,这是我混淆的根本原因。
或者,也许这是一个特殊情况,是的,实际上每个列表项制造3个实例是正确的过程。
有什么建议吗?
答案 0 :(得分:0)
原来我对使用模型,视图和控制器的时间和位置的理解有点缺陷。例如,我只使用了ItemView和ItemModel - 全部由PlaylistController的单个实例处理。
似乎用于(并且仅用于)单个UI组件的实例化完整三元组的情况可能不太可能 - 并且在它确实发生的情况下,那么它更简洁(和向前兼容)到简单完全制造相关的物体。