As3:转换工具架构建议

时间:2012-01-27 01:50:12

标签: flash actionscript-3 flex design-patterns coding-style

我正在尝试熟悉设计模式,模块化,单元测试等...(使用ActionScript)。

我正在开发一个简单的“自由变换工具”,就像练习一样,但我不喜欢到目前为止我提出的解决方案,所以我会试着通过我的行想法。当我提出这个想法时,我在想“写什么,所以我可以测试这个伟大的单元测试框架FlexUnit”,我看到的第一件事就是猜测...一个免费的转换工具。 :)当我考虑工具的体系结构时,我运行的每个场景都是“如何为该事件编写单元测试?”,所以我想出了某种扭曲的MVC元模式:

  • 包含所有组件的视图(旋转区域,拖动区域,调整大小按钮)
  • 包含必要逻辑的模型(或类似的东西)(setSize,setPositiom,rotateAroundCenter等)。
  • 一个控制器,用于向视图组件添加侦听器,在组件上方更新鼠标光标,在与组件交互时获取鼠标坐标,执行计算并从模型中调用将更新视图的方法和良性转化的对象。

我在想:“好吧它很灵活,我可以随时切换M,V或C,我实现了我的主要目标,因为我可以对模型进行大量的单元测试,其中重要的计算是,所以它的大..“。

我刚刚开始实施它,但我认为大多数这些想法都是错误的。是的我可以改变视图并添加新的皮肤,但它根本不灵活,如果我想添加“skew”(或任何其他)功能我应该重写(或者如果我很幸运只是扩展)M,V和C. 是的我可以为模型进行束单元测试,但控制器的计算很难测试。

所以现在我正在考虑类似Decorator模式的东西,这将允许我创建我想要使用的任何控件组合并保持它们的逻辑分离,但我希望可以选择重新设置控件本身和保持逻辑分离,以便我可以进行测试。

我意识到我想创造某种“终极变换工具”,但我真的想要突破极限并学习一些东西。

1 个答案:

答案 0 :(得分:0)

我不确定我是否在这里回答您的问题,但您是否检查过任何MVC框架? 如果你还没有我会查看Robotlegs,它应该可以帮助你创建可测试的代码。

http://www.robotlegs.org/