一万小时 / PureMVC Hello Worldæç¨
PureMVC Hello Worldæç¨
PureMVC 是大量使用于flash开发的一个框架,它很好地对处理对象进行了 最常见的MVC模式划分,清晰的逻辑和功能使得开发者能够很好地开发 新的功能,阅读旧的功能等,所以很多的flash的前端代码都是基于 PureMVC 开发的. 最近因为工作上的需要,我开始学习 PureMVC ,之前也简单地学习过,也按照 官方的教程完成过一个示例,并且也仔细阅读过 相关的教程 ,但是对于 PureMVC 的理解还是相对粗浅,这次在之前理解的基础上做出了一个最简单的 Hello World式的教程,希望加深自己对于这个框架的理解的同时,也能够帮助到 其他人.PureMVC Hello World
这个示例的主要场景如下:- 在UI上显示一个登录用的表单
- 表单上有name, password,和登录的按钮(代码中使用的还是TextField)
- 点击登录后,如果name,password匹配则显示登录成功,否则显示登录失败
-
启动用的单例AppFacade
-
Proxy:
- LoginProxy: 用于验证用户提交的表单是否合法
-
Command:
- StartUpCommand: 用于启动整个应用的Command, 也兼做一些初始化的工作
- initMVCCommand: 用于初始化并注册相关的MVC,如mediator, proxy等
- LoginCommand: 用于处理Login时的逻辑,如调用LoginProxy来进行验证
-
Mediator:
- ViewMediator: 用于UI的显示
AppFacade(register command, send notification to start)-> StartUpCommand(execute) -> initMVCCommand(execute, register MVC) -> ViewMediator(construtor, init the UI) ViewMediator(Login Button Clicked) -> Login(Notification) -> LoginCommand(verfiy login using LoginProxy) -> Login_Succ/Login_Fail -> ViewMediator(show the login result message)那么下面我们分别看下重要的几个模块.
AppFacade
这是用于启动和关联整个 PureMVC 通信过程的辅助性类,单例的. 在这个类中主要注意,初始时的notification发送,注册初始时的Command等即可. 具体代码见: https://github.com/topman/blog_code/blob/master/HelloPureMVC/src/AppFacade.asProxy
Proxy主要功能是处理数据相关的信息,也即Domain logic(域逻辑),通常它只处理数据,保证数据的正确,完整性等. 而与此不同的是Command,它处理的是Business logic(业务逻辑),它更加关注应用所在业务的相关逻辑. 参考 Business Logic和Domain Logic的区别. 在示例中的Proxy, 它的主要功能是提供相关的数据, 因为登录验证是一个非常常见的功能,在实际的登录验证中, 通常是后端进行验证,返回一个成功或者失败即可,所以此例中将验证也放入了Proxy的逻辑中. 具体代码见: https://github.com/topman/blog_code/blob/master/HelloPureMVC/src/model/LoginProxy.asCommand
Command是处理应用的Business Logic(业务逻辑),与Proxy的区别参考上面Proxy的部分. 本例中的Command主要是包括三个,即:- StartUpCommand: 应用启动的命令,调用其它的初始化命令即initMVCCommand
- initMVCCommand: 用于初始化整个MVC,注册MVC各个部分
- LoginCommand: 用于处理登录逻辑的命令