【发布时间】:2011-12-10 05:21:50
【问题描述】:
我刚开始研究模型视图控制器模式。我现在了解了 MVC 的基本用法,但是当我尝试在一个简单的测试中实现 MVC 时,我遇到了问题。 Ofcoarse 我可以轻松地调整代码以使其正常工作,但我想学习如何正确实现 MVC 模式。
测试: 我使用actionscript 3 制作了一个简单的程序。它由一个炮塔和一个鼠标点击组成。炮塔位于屏幕中间。当我单击任意位置时,炮塔会朝我单击的点旋转。鼠标和炮塔都有自己的模型、视图和控制器。当我单击时,MouseModel 会正确更改。但是为了让实际的 TurretView 做出响应,TurretModel 必须更改其旋转变量并发送事件。
问题是谁响应 MouseModel 事件?
/------->MouseControl------\
/ \
MouseView ?<---MouseModel
TurretView <------------------TurretModel
TurretControl
我认为最好不要让 MouseModel 直接影响 TurretModel 或 TurretControl,因为这将要求它们成为 eventListener。让 TurretView 监听 MouseModel,然后告诉 TurretControl 调整 TurretModel,之后 TurretView 可以通过 TurretModel 事件进行更新,这看起来像是一个简单任务的大量额外代码。我也不想让 MouseControl 影响 TurretModel,这会破坏鼠标作为未来类输入的灵活性。
哦,我还要把角度计算的代码放在哪个类中?
提前致谢
【问题讨论】:
标签: actionscript-3 model-view-controller oop design-patterns