Swiz要求弱封装

Fai*_*oor 1 apache-flex frameworks encapsulation actionscript-3 swiz

我刚开始使用Swiz,看起来Swiz强迫你创建具有弱封装的类.Swiz要求所有事件处理程序都是公开的,以便调解事件.

假设组件"A"调度了一些事件,我想在组件"B"中监听这些事件.传统上,我只是在'B'中的'A'上添加事件监听器,并且'B'中的所有事件处理程序都可以保持私有.但是,如果我正在使用Swiz,我需要制作所有处理程序,调解事件,公开.

我在这里遗漏了什么,有没有办法绕过这个问题.我真的,不想污染我班级的公共界面.

谢谢.

bcl*_*ard 5

正如我在邮件列表中提到的那样,不幸的是,没有办法解决它.由于无法访问类的私有成员,因此B可以使用私有事件处理程序来处理来自A的事件的唯一方法是从B内部调用addEventListener().由于Swiz显然不在您的类中运行,因此它没有办法访问这些成员.

Swiz旨在使您的应用程序代码尽可能不受Swiz类的引用(包括继承).因此,您可以将其视为"从外部"配置您的应用程序.与JVM不同,Flash Player只允许不访问私有成员,因此要让Swiz与您的代码进行交互,它必须是公共的.