Flash 欧芹框架消息传递系统是如何工作的?

Flash 欧芹框架消息传递系统是如何工作的?,flash,actionscript-3,apache-flex,model-view-controller,parsley,Flash,Actionscript 3,Apache Flex,Model View Controller,Parsley,我正在尝试在我的flex应用程序中使用parsley框架。信息系统是我在使用欧芹时看到的最好的功能之一 但我有一个疑问 在应用程序中使用Parsley框架是否意味着 用欧芹的消息传递系统替换每个addEventListener()功能 无法使用newObject()创建任何对象。是否应该使用依赖项注入,而不是创建显式对象 上述怀疑是否属实 我在一个我无法选择使用工具的地方工作,如果让我选择的话,欧芹是我不会选择的工具之一。如果您考虑能够调试和测试您的项目、封装、模块化设计等,请避免不惜一切代价使

我正在尝试在我的flex应用程序中使用parsley框架。信息系统是我在使用欧芹时看到的最好的功能之一

但我有一个疑问

在应用程序中使用Parsley框架是否意味着

  • 用欧芹的
    消息传递系统替换每个
    addEventListener()
    功能
  • 无法使用
    newObject()创建任何对象。是否应该使用依赖项注入,而不是创建显式对象

  • 上述怀疑是否属实

    我在一个我无法选择使用工具的地方工作,如果让我选择的话,欧芹是我不会选择的工具之一。如果您考虑能够调试和测试您的项目、封装、模块化设计等,请避免不惜一切代价使用“微体系结构框架”:

    欧芹,类似于SWIZ,Mate,Cairngorm和其他一些我不太了解的东西,依赖于元数据。这增加了很多间接性。这意味着您不仅不能影响甚至调试“幕后”发生的事情,也不能调试您自己的代码中发生的事情。您不知道何时以及为什么会调用该函数,但最重要的是,为什么不会调用它。“依赖项注入”意味着您将无法在“注入”组件上运行单元测试,因为通过“注入”它们,您将创建对项目中所有内容的依赖项

    最终,您编写了更多的代码来为框架服务,您花费了大量的时间调试和解决框架的问题,应用程序获得了大量的权重,运行速度比不使用框架时慢得多。使用框架一段时间后,代码变成了一个无法理解的大烂摊子,无法拆分成更小的部分来更新/替换它们


    因此,如果不明显:)不要使用注入,而是使用
    addEventListener()

    否。使用欧芹并不意味着您必须/应该用欧芹的消息替换所有事件侦听器

    欧芹的整个理念是解耦,换句话说,就是让应用程序的某些部分与应用程序的其他部分无关

    您可以使用Flex消息进行解耦,因为Flex事件可以进行横向传输。 但是: 1) Flex事件在显示列表中横穿,而显示列表并不总是您想要的 2) Flex事件依赖于字符串,如果您进行重构或输入错误,这可能是一个难题

    因此,你两个问题的答案都是: 如果希望Parsley管理这些对象,则仅使用Parsley事件和Parsley对象。但情况并非总是如此

    脱钩可能很好,但也可能是一件麻烦事。与前面的答案不同。解耦对于单元测试非常有用。它实际上使它更容易,因为在理论上,每件事物本身都是一个单元,不与其他单元相联系。仅仅因为欧芹可以为您注入它们,并不意味着它必须为单元测试这样做

    实际上,Flex是围绕注入构建的。自动注射和注射之间有区别。当您将一个数据提供程序分配给一个列表时,您是在注入,只是您的数据库是手动进行的。欧芹只是为您提供了一种自动管理注射的方法

    然而,是的,有时你可能想知道为什么有些东西没有被注射,但要找出原因并不难

    我写了一系列的帖子来帮助人们喜欢欧芹,看看吧
    这可能很有用。

    我更改了主题行,因为“Flex框架”不太具有描述性。