`
superwulei
  • 浏览: 108076 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

pureMVC简单示例及其原理讲解——Model层

阅读更多

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,非常重要,很有意义。

 

上一篇

下一篇

分享到:
评论
1 楼 bibishou 2010-06-04  
Model层有VO和Mediator组成,非常简单,仅仅包含两个类:UserVO和UserProxy。

是不是应该是

Model层有VO和Proxy组成

相关推荐

    [转]pureMVC简单示例及其原理讲解

    【标题】"PureMVC简单示例及其原理讲解"涉及的是一个开源的、跨平台的MVC(Model-View-Controller)框架——PureMVC。PureMVC以其轻量级和高度可扩展性,在开发中得到了广泛应用。这篇博客文章通过一个简单的示例,...

    可以运行的puremvc的登陆实例.

    通过学习这个实例,开发者可以更好地理解PureMVC框架的工作原理,以及如何在实际项目中应用它来组织代码和实现业务逻辑。这对于提升ActionScript或Flex开发者的技能和提高代码复用性非常有帮助。

    PureMvc实例 PureMvc第一个实例

    1. **模型(Model)**:在PureMvc中,模型层负责处理应用程序的数据和业务逻辑。它由一系列`Proxy`类组成,这些类封装了与数据源的交互,可以是本地存储或远程服务。`Proxy`类提供了数据的获取和更新方法,确保数据...

    PureMVC框架实例

    **PureMVC框架详解** PureMVC是一种轻量级、模型-视图-控制器(Model-View-...通过学习和实践"PureMVCExample"中的示例,你可以深入理解PureMVC的工作原理,并将其应用到自己的项目中,提升开发效率和代码质量。

    PureMVC 中文版

    标题 "PureMVC 中文版" 指的是 PureMVC 框架的一个中文版本,这是一款广泛应用的开源框架,特别设计用于构建富互联网应用程序(RIA),尤其是基于Adobe Flex和ActionScript 3的项目。PureMVC 提供了一种模块化、结构...

    PureMVC简单例子

    这个“PureMVC简单例子”是为了帮助初学者理解PureMVC框架的基本原理和实际操作流程。在这个例子中,我们将深入探讨各层的职责以及它们之间的通信机制。 首先,我们来了解一下MVC模式。MVC模式是一种软件设计模式,...

    pureMVC架构详细讲解

    6. **Larena2.0与3.0APP框架差异——pureMVC架构的解析与仿制.ppt**:这个文件可能详细分析了Larena应用程序框架在2.0和3.0版本中如何采用PureMVC架构,并可能讨论了它们之间的差异和改进之处。 7. **pureMVC类成员...

    puremvc实例+中文文档

    压缩包内的中文文档提供了PureMVC框架的详细解释,包括基本概念、使用方法、示例代码和最佳实践,对于初学者来说是非常有价值的参考资料。 通过学习和使用这个PureMVC实例及中文文档,开发者能够更好地理解如何在...

    pureMVC源代码

    纯MVC(PureMVC)是一个轻量级的框架,用于构建基于模型-视图-控制器(Model-View-Controller)设计模式的应用程序。...通过研究这个示例,你可以更好地理解PureMVC的工作原理和如何在实际项目中应用。

    Unity3D客户端PureMVC框架视屏讲解

    Unity3D客户端PureMVC框架视屏讲解是一个深入解析如何在Unity3D环境中应用PureMVC框架的教学资源。PureMVC是一种轻量级、模块化的前端框架,它为游戏开发提供了一种组织代码的结构,使得项目更易于维护和扩展。在...

    PureMVC登陆例子

    《PureMVC登录示例详解》 在软件开发中,框架的选择往往对项目的架构和可维护性起到关键作用。PureMVC,一个轻量级、跨平台的MVC(Model-View-Controller)框架,因其简洁的设计和强大的组织能力,受到了许多开发者...

    PureMVC_CSharp.zip_csharp_pureMVC_pureMVC C_pureMVC C#_疯铮铮

    PureMVC是一个开源的、轻量级的框架,主要用于构建多层应用架构,它遵循了经典的Model-View-Controller(MVC)设计模式。在C#版本中,PureMVC为开发者提供了一种规范化的、可扩展的方式来组织代码,使得项目更易于...

    PureMVC总结(附Hello World含PureMVC源码代码和文档)

    6. **Hello World示例**:通常会通过一个简单的“Hello World”程序来演示PureMVC的基本工作流程,展示如何创建并运行一个完整的MVC循环。 7. **源码分析**:可能对PureMVC的源码进行解析,帮助理解其内部机制和...

    pureMVC_AS3

    - 示例代码:PureMVC官方仓库包含不同语言版本的示例项目。 - 开发者社区:加入PureMVC开发者社区,与其他开发者交流经验。 通过理解和实践PureMVC AS3,开发者能够构建出高效、模块化的ActionScript 3应用程序,...

    Unity 专用 pureMVC

    PureMVC是一个轻量级的框架,其核心概念包括模型(Model)、视图(View)和控制器(Controller)。在Unity中,这些概念被转化为具体的类和接口,使得开发者可以遵循MVC设计模式来编写代码。 1. 模型(Model)层:这...

    PureMVC中文教程

    1. **MVC模式介绍**:讲解MVC模式的基本思想,为何选择MVC以及PureMVC是如何实现这一模式的。 2. **PureMVC架构**:详细介绍PureMVC的四个核心组成部分:Model(模型)、View(视图)、Controller(控制器)以及...

    PureMVC_study

    PureMVC是一款轻量级的框架,主要应用于Flex和AS3开发,它基于经典的Model-View-Controller(MVC)设计模式,为开发者提供了一种组织代码、解耦组件的强大工具。PureMVC的核心理念是通过分离业务逻辑、用户界面和...

    PureMVC 各种例子以及中文文档

    PureMVC是一个开源的、轻量级的、跨平台的模型-视图-控制器(Model-View-Controller,MVC)框架,适用于构建各种类型的应用程序,尤其在富互联网应用程序(Rich Internet Applications,RIA)领域中表现突出。...

    puremvc源码分析

    1. **模型(Model)**:在PureMVC中,模型层负责管理应用程序的数据。它通常由一系列Proxy类组成,每个Proxy类代表一个数据集或服务。Proxy类提供了一种集中式的接口来访问和操作数据,同时实现了Observer接口,以便...

Global site tag (gtag.js) - Google Analytics