`
felixfeng
  • 浏览: 4598 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

PureMVC

阅读更多
PureMVC大大的优化了我们使用FLEX进行前台的开发,使得整个开发过程变的较为可控,但是如果放任程序员去自由的使用pureMVC也会带来很大的隐患。本文内容主要记录我使用pureMVC开发原型这一个星期来使用的一些开发规范和经验总结。
1. 如果有个项目有几个开发人员共同开发,同时采用版本控制工具对项目项目的源码进行版本控制,可是维护通
知的名称着实让人烦恼,我们若要将通知名称放在同一 个类中{ApplicationFacade}就不能很好的使用版本控制工具,因为每个人都要修改这个类 {在你修改时你要看看别人是否已经修改该文件,别人若是修改了还得让他提交,然后自己更新再修改,太痛苦了!} ,而且都放在一个类里也会增加维护的难度,那么有没有什么好的办法呢?
     通常一两个人做个例子时遇到这种情况可能比较好解决,单如果参与的人较多的化,可能花在协调上面的工作
量就会比较多,为了增加开发的速度,使开发变的更加的简单,我们可以让通知名称分散到各个模块的Mediator
类中进行维护{每个模块主页面的协调类,可根据自己的系统大小控制粒度},这样每个开发人员可以只要维护自身的通知名称或者只要与一两个人进行协调,同时我们要求每个通知名称都要包含该类所在的包路径和类名称,具体的格式可以是“通知名称+包路径.类名称”,这样我们只要保证通知名称唯一,且便于日后维护。
2. 每个Mediator,Proxy都要定一个NAME属性,通常我要求每个NAME属性必须是“包路径+类名称”,也是
为了避免不必要的冲突,找半天BUG。
3. PureMVC中Mediator似乎什么都可以坐了,Command的用处似乎不大。
     这是一个错误的看法,虽然我们在Mediator中可以直接获取到Proxy,Mediator类的对象,也可以注册
Mediator,Proxy,Command,但是我们必须给自已一个约束,不然随着开发的不断深入你会发现代码也越来越乱。所以我们增加了较为严禁的约束:
     
       3.1 通常情况在程序启动后,Mediator负责注册Command,以及派发通知和接收通知,当Mediator类需要进行当前范围外的一些操作时就可以通过派发通知的方式。一般来说页面UI主要负责页面的布局和简单的作,其他的应该交由Mediator来处理。例如,Mediator协调的UI需要获取数据,这是Mediator可以派发一个获取数据的通知(之前已经注册一个用于处理该通知的Command),然后有pureMVC会初始化被注册的Command并执行获取数据的操作。如果你需要告知另外一个页面进行某些操作或者增加一个新的页面,也应该通过派发通知的方式来处理,应避免在当前Mediator类中直接获取响应页面的对象或者获取Mediator类进行操作,如果是增加一个新的页面应当在页面加载后将该页面的对象作为报体通知Command进行注册以及其他操作。
     
       3.2 Command主要负责注册Mediator和Proxy以及协调Mediator和Proxy之间的操作,应当将复杂的操作放在这里处理。Command的注册不必集中但也不可以太过分散,一般来说放在比功能级稍大点的Mediator中来注册(例如一个增删改查,4个页面需要不停的切换,关于这4个页面功能的Command一般来说都是放在这四个页面的上一层页面的Mediator中进行注册,也就是管理这四个页面的Mediator中)。当我们要增加啊一个新的UI时需要通知Command来注册Mediator,需要调用model层对数据进行处理时也应通知Command来调用,如果一个Command类里的代码过多,应当考虑进行拆分,Command类应尽可能分的细点,便于维护。
 
     3.3Proxy主要负责对数据的维护以及与服务器端进行通信处理数据。Proxy应当做到只做纯粹的数据处理不干涉过多的逻辑处理,不关心外面发生了什么事情,只要在数据处理后派发通知来通知外界即可,如果各个Proxy之间需要进行交互,那也应该在Command中来是先调用不用Proxy的方法,不要在Proxy中直接去调用另一个Proxy更不能去调用Mediator。
4.注意清除你不用的Mediator,Proxy,Command应当及时的清除,pureMVC采用观察者模式,及时的清楚能减轻系统的负担,但是有时无法做到清楚指定的Mediator等对象,所以在每次注册新的Mediator,Command,Proxy时要判断是否已经存在相同的类,然后根据自己的需要选择是重新注册还是继续使用以前的,切不可同时注册两个相同的,例如:当你有两个相同的Mediator时,你通过NAME属性去获取该对象,那究竟获取哪一个对象才是你想要的呢?
分享到:
评论

相关推荐

    PureMVC 中文版

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

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

    标题中的“可以运行的PureMVC的登陆实例”是指一个基于PureMVC框架的登录功能实现,这个实例已经经过验证可以在FlexBuilder3环境下正常运行。PureMVC是一种经典的多层应用架构模式,它为ActionScript、JavaScript、...

    Lua实现PureMVC

    这个是一个根据AS3(ActionScript 3) pureMVC而转换过来的lua pureMVC。所有的接口完全跟AS3版本一致。 若是想使用,可以直接查看网上的pureMVC 文档,我并未对任何一个函数改名或者更换参数位置。 注意,这个PureMVC...

    基于PureMVC框架实现的Qt的一个例子

    **PureMVC框架详解** PureMVC是一种轻量级、模型-视图-控制器(MVC)框架,最初是为ActionScript开发的,后来被移植到多种编程语言中,包括C++。它提供了一种组织代码结构的方式,使得开发者可以更高效地构建可维护...

    pureMVC_AS3

    **纯MVC(PureMVC)AS3版详解** PureMVC是一款轻量级的框架,主要用于实现Model-View-Controller(MVC)设计模式。它最初由Dan Varga创建,旨在提供一种跨平台的解决方案,使开发人员能够更有效地组织和管理应用...

    Unity 专用 pureMVC

    PureMVC是面向对象的多层应用程序框架,它提供了一种模式来组织代码,使开发更加规范和高效。本篇文章将深入探讨Unity中如何使用PureMVC框架,以及它如何帮助实现UI和逻辑的分离。 PureMVC是一个轻量级的框架,其...

    PureMVC五子棋游戏源码,学习PureMVC

    《深入理解PureMVC:基于五子棋游戏的源码分析》 PureMVC是一个流行的、开源的、轻量级的、跨平台的MVC框架,它为开发人员提供了一种结构化的编程模式,用于组织和管理应用程序的业务逻辑、用户界面和数据。在这个...

    一个很好的puremvc实例

    标题中的“一个很好的puremvc实例”表明我们即将探讨的是关于PureMVC框架的实际应用案例。PureMVC是一个轻量级的、跨平台的MVC(Model-View-Controller)设计模式实现,它主要应用于创建复杂但组织良好的应用程序...

    PureMvc实例 PureMvc第一个实例

    PureMvc是一个开源的、轻量级的框架,用于构建多层结构的富客户端应用程序。它遵循Model-View-Controller(MVC)设计模式,并提供了一种标准化的方式来组织和协调应用程序的各个部分。在这个名为"MyFirstPureMvc"的...

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

    PureMVC是一个开源的、轻量级的框架,主要用于构建多层应用程序,尤其适用于富互联网应用(RIA)的开发。这个框架是基于Model-View-Controller(MVC)设计模式的,它提供了一种结构化的解决方案,使得开发者可以更...

    qt版本pureMVC

    Qt版本的PureMVC是一个基于设计模式的框架,主要用于构建可维护性和可扩展性极高的应用程序。这个框架的实现是将经典的MVC(Model-View-Controller)模式应用于Qt编程环境,为Qt开发者提供了一种结构化的方法来组织...

    pureMVC初尝试

    标题“pureMVC初尝试”表明我们即将探讨的是PureMVC框架在实际应用中的初步体验。PureMVC是一个开源的、轻量级的、模型-视图-控制器(MVC)设计模式实现,主要应用于Flex、AS3以及其它编程语言的项目中。它提供了一...

    pureMVC源代码

    纯MVC(PureMVC)是一个轻量级的框架,用于构建基于模型-视图-控制器(Model-View-Controller)设计模式的应用程序。这个框架最初是为ActionScript编程语言设计的,但后来被移植到了多种其他编程语言中,包括Java、...

    PureMVC.rar

    PureMVC是一个开源的、轻量级的MVC(Model-View-Controller)框架,它最初是为ActionScript设计的,但后来发展出了多种语言版本,包括C#。本压缩包"PureMVC.rar"提供了PureMVC在C#平台上的实现,包括单线程版和多...

    PureMVC C++架构代码

    PureMVC是一个多范式、轻量级的框架,它主要设计用于构建应用程序的模型-视图-控制器(MVC)结构。这个框架的核心理念是将应用程序的不同部分解耦,以便于开发、维护和扩展。在C++版本的PureMVC中,它充分利用了面向...

    pureMVC安装包,SDK

    如你下载后的存放的目录是D组:/下载,解压后将创建一个名为PureMVC_AS3_2_0_4的文件夹(注:其中的2_0_4是版本号) ; 打开PureMVC_AS3_2_0_4文件夹,您会发现里面有三个文件夹: asdoc :对应于API的文档,它的首页...

    PureMVC_study

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

    PureMVC C#框架

    PureMVC C#框架是一种基于模型-视图-控制器(MVC)设计模式的轻量级应用框架,专为C#编程语言设计。这个框架旨在提高软件开发的组织性和可维护性,通过分离业务逻辑、用户界面和应用程序数据,使得开发者能够更高效...

    PureMVC 各种例子以及中文文档

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

    pureMVC资料包

    纯MVC(PureMVC)是一个轻量级的框架,主要设计用于构建应用程序的模型-视图-控制器架构。这个框架最初是为ActionScript 3编程语言开发的,但现在已经被移植到许多其他编程语言,包括Java、C#、Python、JavaScript等...

Global site tag (gtag.js) - Google Analytics