客观地讲,Cairngorm相对于PureMVC的优缺点是什么?
时间:2020-03-06 14:29:23 来源:igfitidea点击:
在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邪恶的全局变量)。