我试图熟悉设计模式,模块化,单元测试等(使用ActionScript)。As3:转换工具体系结构建议
我现在正在开发一个简单的“自由变换工具”,就像练习一样,但我不喜欢我到目前为止提出的解决方案,所以我会尽量走你的路线的想法。当我提出这个想法时,我想“写什么才能测试这个伟大的单元测试框架FlexUnit”,我看到的第一件事就是猜测......一个自由变换工具。 :)当我思考的工具,我运行的每个场景槽的架构“我怎样才能编写单元测试什么东西?”,所以我想出了某种扭曲的MVC元模式的:
- 一查看所有组件(旋转区域,拖动区域,调整大小按钮)
- 模型(或类似的东西),持有必要的逻辑(setSize,setPositiom,rotateAroundCenter等..)。
- 还有一个控制器,它将侦听器添加到视图组件,更新鼠标光标,当它与组件交互时,获取鼠标坐标,当与组件交互时,执行计算并调用模型中的方法,以更新视图和良性转化的对象。
我在想:“确定它的灵活性,我可以随时切换M,V或C,我实现了我的主要目标,因为我可以对模型进行大量的单元测试,其中重要的计算是,所以它很棒..“。
我刚刚开始实施它,但我认为这些想法大多是错误的。是的,我可以改变视图并添加新的皮肤,但它根本不灵活,如果我想添加“skew”(或任何其他)功能,我应该重写(或者如果我很幸运,只是扩展)M,V和C. 是的,我可以对模型进行束单元测试,但控制器的计算将很难测试。
所以现在我正在考虑像装饰模式,这将允许我创建任何组合的控件我想要使用和保持其逻辑分离,但我想有选择重新皮肤控制自己并保持逻辑分离,所以我可以做测试。
我意识到我想创造某种“终极转换工具”,但我真的试图推动我的极限并学习一些东西。
是简单的问题,“你会建议什么样的设计模式我用它来构建这个工具?” – Aaron 2012-01-27 02:46:52