在 Flex 中使用 MVC 框架的原因有很多,但选择正确的框架似乎很棘手。我对你们从实施这些(或另一个)的经验中的想法很感兴趣。
山姆
在 Flex 中使用 MVC 框架的原因有很多,但选择正确的框架似乎很棘手。我对你们从实施这些(或另一个)的经验中的想法很感兴趣。
山姆
这个问题已经被问过了,但是由于您专门询问 Cairngorm 和 PureMVC 的好处,所以我的想法是:
PureMVC 和 Cairngorm 都使编写可测试代码变得困难。这主要是因为他们使用了将您的应用程序代码紧密联系在一起的全局变量,从而难以隔离任何部分进行测试。Cairngorm 比 PureMVC 更是如此,但两者都非常糟糕。
PureMVC 比 Cairngorm 更具侵入性(这意味着您的代码严重依赖于框架,例如您必须继承/实现框架类/接口),但这并不意味着 Cairngorm 不是。
Cairngorm 充满了反模式,比如大量使用全局变量,PureMVC 隐藏了自身最糟糕的部分。
PureMVC 是反 Flex 的,Cairngorm 只是没有使用 Flex 的许多好的部分。我的意思是 PureMVC 重新发明了 Flex 已经拥有的许多东西,因为它希望与平台无关,并且由于它的架构,特别是中介,它使得使用绑定的全部功能变得更加困难。Cairngorm 只是跳过了诸如事件冒泡之类的事情,而是选择了涉及全局变量的解决方案。
简而言之,Cairngorm 是 Flex 的 VisualBasic,它可以工作但会教你很多坏习惯。PureMVC 还不错,只是不太适合编写 Flex 应用程序。
我认为你应该看的是Mate,它充分利用了 Flex 的潜力,而且它不是围绕全局变量构建的。相反,它可以帮助您编写松散耦合、可测试、可重用和可维护的代码,而无需您在其他应用程序框架中看到的对框架的沉重和不必要的依赖。
如果您出于某种原因不喜欢 Mate,请尝试Swiz,这是对 Cairngorm 的一个很大改进,但仍然对使用全局变量进行中央事件调度有一些奇怪的偏好(考虑到框架的要点之一,这完全是奇怪的)是为了避免Cairngorm的邪恶全局变量)。