顺德新网站制作,如何搭建个人网站,电商网站建设收费,wordpress 上传腾讯云本节将讲述pureMVC示例中的Controller层。 Controller层有以下文件组成#xff1a; AddUserCommand.asDeleteUserCommand.asModelPrepCommand.asViewPrepCommand.asStartupCommand.asAddUserCommand 。顾名思义#xff0c;它是添加用户命令。让我们首先看看代码。 Addusercom… 本节将讲述pureMVC示例中的Controller层。 Controller层有以下文件组成 AddUserCommand.asDeleteUserCommand.asModelPrepCommand.asViewPrepCommand.asStartupCommand.asAddUserCommand 。顾名思义它是添加用户命令。让我们首先看看代码。 Addusercommand.as代码 package com.superwulei.controller { import com.superwulei.model.UserProxy; import com.superwulei.model.vo.UserVO; import mx.controls.Alert; import org.puremvc.as3.interfaces.INotification; import org.puremvc.as3.patterns.command.SimpleCommand; public class AddUserCommand extends SimpleCommand { override public function execute(notification:INotification):void { var user:UserVO notification.getBody() as UserVO; var userProxy:UserProxy facade.retrieveProxy(UserProxy.NAME) as UserProxy; if(user.isValid){ userProxy.addItem(user); }else{ Alert.show(请检查用户名和密码); } } } } AddUserCommand是一个单一命令SimpleCommand自定义SimpleCommand必须继承SimpleCommand并重写execute方法。execute方法表示这个命令的执行。曾经在上一篇《pureMVC简单示例及其原理讲解——View层 》中提到的添加用户的逻辑代码应该在这里编写。还记得上一篇中提到的“View层本身不处理各种操作但是发送通知”么 上一篇中发送通知的代码 sendNotification(ApplicationFacade.USER_ADD,userForm.user); 拿出这段代码是特意的想说明AddUserCommand的execute方法中的notification.getBody()其实就是userForm.user严谨的说应该是userFrom.user作为参数传到execute方法中来。如此我们在这里通过userProxy.addItem(user)就实现了用户的添加。userProxy中的users就多了一个user。 DeleteUserCommand 删除用户命令。代码如下与添加用户道理一样不多言。 Deleteusercommand deleteusercommand.as代码 package com.superwulei.controller { import com.superwulei.model.UserProxy; import com.superwulei.model.vo.UserVO; import org.puremvc.as3.interfaces.INotification; import org.puremvc.as3.patterns.command.SimpleCommand; public class DeleteUserCommand extends SimpleCommand { override public function execute(notification:INotification):void { var user:UserVO notification.getBody() as UserVO; var userProxy:UserProxy facade.retrieveProxy(UserProxy.NAME) as UserProxy; userProxy.deleteItem(user); } } } ModelPrepCommand、ViewPrepCommand分别是Model层注册和View层注册。说道注册就要道一道。在pureMVC中一切总控制是facade因此无论是Proxy、Mediator还是Command都要在facade中注册。上面四个Command全部为SimpleCommand最后一个StartupCommand为MacroCommand复合命令。StartupCommand包含了多个SimpleCommand通过addSubCommand方法添加了子命令并在之后在facade上注册了AddUserCommand和DeleteUserCommand。 Modelprepcommand.as代码 package com.superwulei.controller { import com.superwulei.model.UserProxy; import org.puremvc.as3.interfaces.INotification; import org.puremvc.as3.patterns.command.SimpleCommand; public class ModelPrepCommand extends SimpleCommand { override public function execute(notification:INotification):void { /* 注册Model */ facade.registerProxy(new UserProxy()); } } } Viewprepcommand.as代码 package com.superwulei.controller { import com.superwulei.view.UserFormMediator; import com.superwulei.view.UserListMediator; import org.puremvc.as3.interfaces.INotification; import org.puremvc.as3.patterns.command.SimpleCommand; public class ViewPrepCommand extends SimpleCommand { override public function execute(notification:INotification):void { var app:MyPureMVCdemo notification.getBody() as MyPureMVCdemo; /* 注册View */ facade.registerMediator(new UserFormMediator(app.userForm)); facade.registerMediator(new UserListMediator(app.userList)); } } } Startupcommand.as代码 package com.superwulei.controller { import com.superwulei.ApplicationFacade; import org.puremvc.as3.patterns.command.MacroCommand; public class StartupCommand extends MacroCommand { override protected function initializeMacroCommand():void{ addSubCommand(ModelPrepCommand); addSubCommand(ViewPrepCommand); /* 注册添加、删除用户命令 */ facade.registerCommand(ApplicationFacade.USER_ADD,AddUserCommand); facade.registerCommand(ApplicationFacade.USER_DELETE,DeleteUserCommand); } } } 通过使用facade的registerCommand就好象添加一个监听器一样当有sendNotification发送出来的时候就会有对应的Command的execute方法被执行。 Controller层包含的应该是整个应用程序的逻辑业务。 转载于:https://www.cnblogs.com/fuland/p/3632847.html