Art01-No.2 Flex框架pureMVC的使用
1、PureMVC设计图:
?
2、目标:将程序分为低耦合的三层:Model、View、Controller
?
3、Model、View、Controller都是单例模式管理,在PureMVC中创建一个Fa?ade单例类,用于Model、View、Controller单例,实现相互关联。该类实现了与核心层的唯一接口
?
4、Model 与 Proxy:通过Proxy,保持这Proxy类的引用,用Proxy类操作数据模型,以及从远程通讯存取数据(数据模型类继承了Proxy类,实现了IProxy接口)
?
5、View与Mediator:View保持着Mediator类的引用,由Mediator类具体操作视图组件,包括:添加事件监听器,发送或接收Notification ,直接改变视图组件的状态
?
6、Controller与Command:Controller保持所有Command的映射,Command类是无状态的,只在需要时才被创建。Command可以获取Proxy对象并与之交互,发送Notification,执行其他的Command。经常用于复杂的或系统范围的操作,如应用程序的“启动”和“关闭”。应用程序的业务逻辑应该在这里实现
?
7、Fa?ade 与 Core:Fa?ade类应用单例模式,它负责初始化核心层(Model,View和Controller),并能访问它们的Public方法。在实际的应用中,你只需继承Fa?ade类创建一个具体的Fa?ade类就可以实现整个MVC模式,并不需要在代码中导入编写Model,View和Controller类。Proxy、Mediator和Command就可以通过创建的Fa?ade类来相互访问通信。
?
8、Observer 与 Notification:
?
Notification可以被用来触发Command的执行:Facade保存了Command与Notification之间的映射。当Notification(通知)被发出时,对应的Command(命令)就会自动地由Controller执行。Command实现复杂的交互,降低View和Model之间的耦合性。Mediator发送、声明、接收Notification:当用View注册Mediator时,Mediator的listNotifications方法会被调用,以数组形式返回该Mediator对象所关心的所有Notification。之后,当系统其它角色发出同名的Notification(通知)时,关心这个通知的Mediator都会调用handleNotification方法并将Notification以参数传递到方法。Proxy发送,但不接收Notification:Proxy只关心自己的数据区域,不关心其他的变化,从而保证对View层和Controller层的改变不应该影响到Model层。一般地,实际的应用程序都有一个Fa?ade子类,这个Fa?ade类对象负责初始化Controller(控制器),建立Command与Notification名之间的映射,并执行一个Command注册所有的Model和View。?