WEB开发网
开发学院软件开发Java 常用Flex IOC框架比较分析 阅读

常用Flex IOC框架比较分析

 2009-10-09 00:00:00 来源:WEB开发网   
核心提示: 在这个例子应用中,LoginPM是事件源,常用Flex IOC框架比较分析(10),LoginAction(从LoginHandler重命名而来)是事件处理器,如下代码摘自LoginPM:[Event(name="LOGIN",type="com.adobe.log

在这个例子应用中,LoginPM是事件源,LoginAction(从LoginHandler重命名而来)是事件处理器。

如下代码摘自LoginPM:

[Event( name="LOGIN", type="com.adobe.login.control.event.LoginEvent")]
[ManagedEvents("LOGIN")]
public class LoginPM extends EventDispatcher
{
...
public function login() : void
{
var event : LoginEvent = new LoginEvent( username, password );
dispatchEvent( event );
}
}

让LoginPM成为事件源需要三个要素:Event元数据标签、ManagedEvents元数据标签,以及EventDispatcher#dispatchEvent。三者当中,只有ManagedEvents是Parsley扩展而来。Event元数据仅为习惯做法,事件的实际派发工作是由dispatchEvent完成的。Parsley将通过ManagedEvents决定它要处理哪个事件,并将该事件委托给事件处理器。

如下代码摘自LoginAction(已经被配置为事件处理器):

public class LoginAction implements IResponder
{
[MessageHandler]
public function execute( event : LoginEvent ) : void
{
...
}
}

因为我为这个函数补充了MessageHandler元数据,Parsley将把这个对象/函数当做类型为LoginEvent的所有事件的监听器。

要让这些对象对Parsley可见,可在传入FlexContextBuilder的配置文件内声明这些对象,或在视图中使用Configure对象。

表现层模型的注入

和其他例子一样,我已将表现层模型的继承结构去除。相关原因请参看Spring ActionScript。

Parsley支持setter和constructor两种注入方法。像我在Spring ActionScript例子中提到的那样,我更倾向于使用constructor注入,因为它可以暴露出对象运作所需的全部依赖。如是是DashboardPM的配置:

上一页  5 6 7 8 9 10 

Tags:常用 Flex IOC

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接