浏览 3057 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-10-10
最后修改:2009-10-10
pureMVC简单示例及其原理讲解——Model层pureMVC是一个MVC框架,皆在最大限度保持Model、View、Controller的独立性,从而减少各个层间的耦合。 上一篇《pureMVC简单示例及其原理讲解——开篇 》中讲述了本示例宗旨、主要功能文件结构,此外还介绍了pureMVC包含的核心组成。 回顾:
本节将讲述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,非常重要,很有意义。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-06-04
Model层有VO和Mediator组成,非常简单,仅仅包含两个类:UserVO和UserProxy。
是不是应该是 Model层有VO和Proxy组成 |
|
返回顶楼 | |