zoukankan      html  css  js  c++  java
  • pureMVC简单示例及其原理讲解二(Model层)

    本节将讲述Model层。

    Model层有VO和Mediator组成,非常简单,仅仅包含两个类:UserVO和UserProxy。

    UserVO中的构造器用于初始化用户的添加(通过email和密码),另一个isValid属性验证用户电子邮件是否合法以及密码长度。

    Uservo.as代码  收藏代码
    1. /**  
    2. UserVO  
    3.  
    4. */  
    5. package com.superwulei.model.vo {  
    6.   
    7.     public class UserVO {  
    8.   
    9.         public var email:String = '';            //电子邮件  
    10.         public var password:String = '';         //密码  
    11.         public var regDate:Date;                 //注册日期  
    12.   
    13.         public function UserVO(email:String, password:String) {  
    14.             this.email = email;  
    15.             this.password = password;  
    16.             this.regDate = new Date();  
    17.         }  
    18.   
    19.         /*  
    20.         验证用户信息  
    21.         email:以单词字符开始,以.cn结尾  
    22.         password:     长度大于等于6位  
    23.         */  
    24.         public function get isValid():Boolean {  
    25.             var emailRegExp:RegExp = /^w+[@]w+(.com)$/;  
    26.             return (emailRegExp.test(this.email) && this.password.length >= 6);  
    27.         }  
    28.     }  
    29. }  

    UserProxy代码如下。UserProxy继承Proxy。在Proxy中有一个类型为Object的data私有变量,这样就可以使用这个Object的变量存储任何数据。在UserProxy构造方法中,我们通过super方法调用父类构造器并将Object的data转换为ArraryCollect类型。由于data是私有了,因此我们通过getter返回属性的公有方法返回"ArrayCollection"类型的data。同时定义两个其他的方法用于向这个users属性中添加、删除对象。其实大家现在应该可以看出来了,这个users属性存在的目的其实就是为了存储UserVO对象。

    Userproxy.as代码  收藏代码
    1. package com.superwulei.model  
    2. {  
    3.     import com.superwulei.model.vo.UserVO;  
    4.       
    5.     import mx.collections.ArrayCollection;  
    6.       
    7.     import org.puremvc.as3.patterns.proxy.Proxy;  
    8.   
    9.     public class UserProxy extends Proxy  
    10.     {  
    11.         public static const NAME:String = 'UserProxy';  
    12.           
    13.         public function UserProxy()  
    14.         {  
    15.             super(NAME,new ArrayCollection());  
    16.         }  
    17.           
    18.         public function get users():ArrayCollection{  
    19.             return data as ArrayCollection;  
    20.         }  
    21.         /* 添加项 */  
    22.         public function addItem(item:Object):void{  
    23.             users.addItem(item);  
    24.         }  
    25.         /* 删除项 */  
    26.         public function deleteItem(item:Object):void{  
    27.             var user:UserVO = item as UserVO;  
    28.             for(var i:int = 0; i < users.length; i++){  
    29.                 if(users[i].email == user.email){  
    30.                     users.removeItemAt(i);  
    31.                 }  
    32.             }  
    33.         }  
    34.     }  
    35. }  

    Model层非常简单,pureMVC设计的追求同样如此,Model层应该是稳定的、不会由于其他层的变化而变化。

    本节中讲解了Model层,关键的一点是Proxy中的data,非常重要,很有意义。

  • 相关阅读:
    linux之awk命令
    HDU 2097 Sky数 进制转换
    HDU 2077 汉诺塔IV
    HDU 2094 产生冠军 dfs加map容器
    HDU 2073 叠框
    HDU 2083 简易版之最短距离
    HDU 2063 过山车 二分匹配
    天梯 1014 装箱问题
    天梯 1214 线段覆盖
    天梯 1098 均分纸牌
  • 原文地址:https://www.cnblogs.com/fuland/p/3632843.html
Copyright © 2011-2022 走看看