本节将讲述Model层。
Model层有VO和Mediator组成,非常简单,仅仅包含两个类:UserVO和UserProxy。
UserVO中的构造器用于初始化用户的添加(通过email和密码),另一个isValid属性验证用户电子邮件是否合法以及密码长度。
  - /**  
 
  - UserVO  
 
  -  
 
  - */  
 
  - package com.superwulei.model.vo {  
 
  -   
 
  -     public class UserVO {  
 
  -   
 
  -         public var email:String = ‘‘;            //电子邮件  
 
  -         public var password:String = ‘‘;         //密码  
 
  -         public var regDate:Date;                 //注册日期  
 
  -   
 
  -         public function UserVO(email:String, password:String) {  
 
  -             this.email = email;  
 
  -             this.password = password;  
 
  -             this.regDate = new Date();  
 
  -         }  
 
  -   
 
  -         /*  
 
  -         验证用户信息  
 
  -         email:以单词字符开始,以.cn结尾  
 
  -         password:     长度大于等于6位  
 
  -         */  
 
  -         public function get isValid():Boolean {  
 
  -             var emailRegExp:RegExp = /^\w+[@]\w+(.com)$/;  
 
  -             return (emailRegExp.test(this.email) && this.password.length >= 6);  
 
  -         }  
 
  -     }  
 
  - }  
 
 
 
UserProxy代码如下。UserProxy继承Proxy。在Proxy中有一个类型为Object的data私有变量,这样就可以使用这个Object的变量存储任何数据。在UserProxy构造方法中,我们通过super方法调用父类构造器并将Object的data转换为ArraryCollect类型。由于data是私有了,因此我们通过getter返回属性的公有方法返回"ArrayCollection"类型的data。同时定义两个其他的方法用于向这个users属性中添加、删除对象。其实大家现在应该可以看出来了,这个users属性存在的目的其实就是为了存储UserVO对象。
  - package com.superwulei.model  
 
  - {  
 
  -     import com.superwulei.model.vo.UserVO;  
 
  -       
 
  -     import mx.collections.ArrayCollection;  
 
  -       
 
  -     import org.puremvc.as3.patterns.proxy.Proxy;  
 
  -   
 
  -     public class UserProxy extends Proxy  
 
  -     {  
 
  -         public static const NAME:String = ‘UserProxy‘;  
 
  -           
 
  -         public function UserProxy()  
 
  -         {  
 
  -             super(NAME,new ArrayCollection());  
 
  -         }  
 
  -           
 
  -         public function get users():ArrayCollection{  
 
  -             return data as ArrayCollection;  
 
  -         }  
 
  -         /* 添加项 */  
 
  -         public function addItem(item:Object):void{  
 
  -             users.addItem(item);  
 
  -         }  
 
  -         /* 删除项 */  
 
  -         public function deleteItem(item:Object):void{  
 
  -             var user:UserVO = item as UserVO;  
 
  -             for(var i:int = 0; i < users.length; i++){  
 
  -                 if(users[i].email == user.email){  
 
  -                     users.removeItemAt(i);  
 
  -                 }  
 
  -             }  
 
  -         }  
 
  -     }  
 
  - }  
 
 
Model层非常简单,pureMVC设计的追求同样如此,Model层应该是稳定的、不会由于其他层的变化而变化。
本节中讲解了Model层,关键的一点是Proxy中的data,非常重要,很有意义。
pureMVC简单示例及其原理讲解二(Model层),布布扣,bubuko.com
pureMVC简单示例及其原理讲解二(Model层)
原文:http://www.cnblogs.com/fuland/p/3632843.html