摘要: PureMVC源码中设计到的11个类已经全部解析完了,回首想想,花了一周的时间做的这点事情还是挺值得的,自己的文字组织表达能力和对pureMVC的理解也在写博客的过程中得到了些提升。我也是第一次写系列博客,有很多疏漏之处,希望各位批准指正,也希望大家多相互交流。 为了大家方便索引,对PureMVC系列文章按照理解先后顺序做了个索引: 1、认识PureMVC:http://www.cnblogs.com/iRavior/p/3347956.html2、PureMVC(JS版)源码解析(一):观察者模式解析:http://www.cnblogs.com/iRavior/p/3351993... 阅读全文
posted @ 2013-10-14 20:07 iRavior 阅读(3216) 评论(0) 推荐(4) 编辑
摘要: MVC设计模式的核心元素在PureMVC中体现为Model类、View类和Controller类。为了简化程序开发,PureMVC应用Facade模式。 Facade是Model\View\Controller三者的"经纪人"。实际编写代码时你并不用导入这三者的类文件,也不用直接使用它们。Facade类已经在构造方法中包含了对核心MVC三者单例的构造。也就是说Facade类应用单例模式,它负责初始化核心层(Model\View\Controller),并能访问他们的Public方法。 在实际的应用中,你只需要继承Facade类创建一个具体的Facade类就可以实现整个MVC 阅读全文
posted @ 2013-10-14 19:43 iRavior 阅读(1228) 评论(1) 推荐(0) 编辑
摘要: 这篇博文讲PureMVC三个核心类——Model类。Model类的构造函数及工厂函数【即getInstance()方法】和View类、Controller类是一样的,这里就不重复讲解了,只不过它把mediatorMap或commandMap变成了proxyMap。 Model类保存了所有Proxy的引用,Proxy只能发送消息,不能接受消息,所以Model类的结构相对于View和Controller简单许多。 我们先看一下Model类的registerPorxy方法:Model.prototype.registerProxy= function(proxy){ proxy.i... 阅读全文
posted @ 2013-10-14 19:25 iRavior 阅读(785) 评论(0) 推荐(0) 编辑
摘要: 这篇博客我们继续讲解PureMVC的三大核心类(View/Controller/Model)——Controller类。根据PureMVC模块设计,Controller类保存所有的Command映射,它的构造函数和工厂函数与View类的很相似:function Controller(key){ if(Controller.instanceMap[key] != null) { throw new Error(Controller.MULTITON_MSG); } this.multitonKey= key; Controller.instan... 阅读全文
posted @ 2013-10-14 19:16 iRavior 阅读(890) 评论(0) 推荐(0) 编辑
摘要: 在讲解View类之前,我们先回顾一下PureMVC的模块划分: 在PureMVC中M、V、C三部分由三个单例类管理,分别是Model/View/Controller。PureMVC中另外一个单例类——Facade。Facade提供了与MVC三个单例类(核心类)通信的唯一接口。这4个单例类构建了PureMVC的骨架。 在游戏开发中,一个游戏是由多个模块组成,如主场景模块,战斗模块等等,每个模块通常都是单独的Model/View/Controller,显然PureMVC的4个单例类是无法满足需求的,它就提供了Proxy/Mediator/Command来解决问题。 Proxy/Media... 阅读全文
posted @ 2013-10-11 09:26 iRavior 阅读(1199) 评论(0) 推荐(0) 编辑
摘要: 前面,我们讲了与视图相关联的Mediator类,接下来我们讲讲与数据相关联的Proxy类。关于Proxy类的作用,在Proxy类源码中,有这么一段注释: * In PureMVC, Proxy classes are used to manage parts of the application's data * model. 翻译成中文就是,在PureMVC中,Proxy类用来管理应用的数据模型。 Proxy类的结构很简单,一个和Mediator类功能一样的NAME静态成员,还有一个data属性,用来存储proxy管理的数据。/** * @ignore * The Proxys na 阅读全文
posted @ 2013-10-10 00:53 iRavior 阅读(1078) 评论(0) 推荐(0) 编辑
摘要: 之前的博文中,我们分析了SimpleCommand类和MacroCommand类,这两个类用作"业务逻辑(business logic)"处理,今天,我们讲一些和UI界面相关联的Mediator类。 我们知道在游戏中有各式各样的UI界面,我们可以把一个UI界面当做一个视图组件(View Component)。一个完整的游戏就是由许多视图组件组成的。我们通过UI界面进行交互,触发各类事件,游戏逻辑部分监听事件、处理数据,数据更新后更新视图组件。(PureMVC 工作流程图) 其中,Mediator就是视图组件(View Component)和游戏其他部分(比如业务处理(com 阅读全文
posted @ 2013-10-09 18:00 iRavior 阅读(1533) 评论(0) 推荐(0) 编辑
摘要: 上一篇博客,我们讲解了SimpleCommand类,接下来我们看一下与SimpleCommand类很相似的MacroCommand类。 MacroCommand类和SimpleCommand类一样,都继承Notifier类(通知者),都可以发送消息。/* subclass Notifier */MacroCommand.prototype= new Notifier;MacroCommand.prototype.constructor= MacroCommand;MacroCommand类比SimpleCommand类多了一个subCommands属性。它是干嘛用的呢?其实,通过类名我们就可. 阅读全文
posted @ 2013-10-07 21:45 iRavior 阅读(1374) 评论(0) 推荐(0) 编辑
摘要: 之前我们对PureMVC中涉及到观察者模式的三个基本类(Notification/Observer/Notifier)进行了分析,接下来将对PureMVC源码中的其他类进行分析,首先我们讲解SimpleCommand类。 SimpleCommand在MVC类中属于C部分,用于一些复杂的逻辑处理,SimpleCommand类在PureMVC被设计成了一个双面角色,它既可以扮演通知者(Notifier)的角色(即可以发送Notification),也可以扮演观察者(Observer)接受消息。通过分析源码可知,SimpleCommand类,继承了Notifier类:function S... 阅读全文
posted @ 2013-10-07 17:29 iRavior 阅读(1069) 评论(0) 推荐(0) 编辑
摘要: 上一篇博客中,我们解析了Observer(观察者)类,这一篇博客我们来讲Notifier(通知着)类。关于Notifier类,源码注释上有这么一段: * @class puremvc.Notifier * A Base Notifier implementation. * {@link puremvc.MacroCommand MacroCommand}, * {@link puremvc.SimpleCommand SimpleCommand}, * {@link puremvc.Mediator Mediator} and * {@link puremvc.Proxy Prox... 阅读全文
posted @ 2013-10-07 10:40 iRavior 阅读(1184) 评论(0) 推荐(0) 编辑