PureMVC 框架总结收录

PureMVC框架的目标很明确,就是把程序分为低耦合的三层:Model、View和Controller。

通过使用PureMVC后,我们的代码将集中分为以下几个部分:Façade、Command、Mediator、Proxy以及UI部分,还有一些数据结构的定义如Value Object,所有核心的逻辑都在Command、Mediator和Proxy中。

1.      Façade:

管理着Controller、Model和View,并且通过他们建立起Notification和Command以及Notification和Mediator之间的消息映射。

其中Controller、Model和View都是在框架中实现,对用户来讲是不可见的。

一般一个Application都有一个Façade子类,并在系统初始化的时候进行Façade的初始化。

有3个比较重要的Protected初始化函数:

initializeController() – 初始化Notification和Command之间的映射

如registerCommand(LOGIN, LoginCommand);

initializeModel() – 初始化Model层,主要是Proxy的注册

如registerProxy(new SearchProxy());

initializeView() – 初始化View层,主要是Mediator,并Mediator指定具体的Notification Body,通常就是具体的UI view

如registerMediator(new ApplicationMediator());

通常Proxy和Mediator都是在收到具体Notification后第一次调用的时候进行注册,特别是Mediator,它需要一个对UI view的具体引用,在façade中无法得到

2.      Command

一般处理系统主要的Business Logic。通过Façade中的Controller注册并侦听每个Notification,当收到某个Notifiaction后,Controller会实例化一个Notification对应的Command类对象,然后调用Command的execute()方法并将Notification作为参数传递给它。

Command包括两种SimpleCommand和MacroCommand,实际上MacroCommand就比SimpleCommand多维护一个subCommands数组,在调用MacroCommand的execute方法是,会遍历该数组并按顺序调用每个command的execute方法

在Command里可能会处理以下逻辑:

A.     注册或删除Mediator、Proxy以及其他Command

B.     发送Notification通知其他Command或者Mediator做出响应

C.     获取Proxy和Mediator对象,直接操作它们

3.      Mediator

Mediator是界面UI部分和系统其他部分交互的中介。它的主要职责是处理UI和其他Mediator或者Command发出的Notification。

Mediator通过2种方式监听着系统发出的消息

  1. 普通的addEventListener(eventName, onHandler)
  2. 定义感兴趣的Notification和收到Notification后的处理函数

如下代码:

override public function listNotificationInterests():Array{

return [

ApplicationFacade.MY_CLICK

];

}

override public function handleNotification(notification:INotification):void{

switch(notification.getName())

{

case ApplicationFacade.MY_CLICK:

myView.text.text = notification.getBody() as String;

break;

}

}

时间: 2024-12-29 11:43:34

PureMVC 框架总结收录的相关文章

Unity编程笔录--ulua+PureMVC框架简单热更新使用

ulua+PureMVC框架简单热更新使用 前言: 1:作者官网论坛 首先介绍的是这个框架是一位大牛  骏擎[CP]  jarjin   写的,据说原本是"非常多人不知道怎么使用Ulua,所以搞了个演示Demo",可是这个初衷发生了变化,突然有一个天作者发现非常多人基于这个Demo去做游戏了.这出乎作者的意料. 在此希望这个框架会越来越好. 眼下为止这个框架是全然免费的. 官网地址:http://www.ulua.org/ 近期刚刚开了一个论坛,大家不懂的能够去看看,论坛地址:http

Unity3d中PureMVC框架的搭建及使用资料

1.下载PureMVC框架 https://github.com/PureMVC/puremvc-csharp-multicore-framework https://github.com/PureMVC/puremvc-csharp-standard-framework/releases 2.框架搭建 http://www.cnblogs.com/skynet/category/441705.html http://www.jianshu.com/p/904b36ad37e2 http://b

快速上手并深入理解PureMVC框架设计(C#)

直接进入正题谈谈框架之间是如何解耦吧... 首先我们先分析下辅助工具类Observer类 可以看到在构造观察者时 传入了对象和对象包含的方法(蓝色箭头为对象,红色箭头为对象内包含的方法) 接下来我们查看观察者的执行(NotifyObserver) 参数是框架给我们提供的标准(Inotification接口 通知名称(name),通知的执行对象(body)) 在执行观察者的时候 反射出执行对象的方法 然后调用方法 同时PureMVC中已经为我们统一化了发送标准和消息体标准(Notifier,Not

微服务框架学习收录链接(包括服务搭建中用到mybatis-plus等)

1.基于Spring Boot和Spring Cloud实现微服务架构学习(一)-Spring框架介绍 https://blog.csdn.net/zeb_perfect/article/details/51945350 2.Spring Cloud生态圈简介 https://blog.csdn.net/rickiyeat/article/details/59172258 3.标题:Spring Boot 快速搭建微服务框架详细教程 http://www.jb51.net/article/123

pure MVC框架目标与好处

框架一瞥 PureMVC是一个为创建基于经典MVC元设计模式应用的轻量级框架. 此框架是开源且免费的,已经被AS2,AS3,Java,C#以及其他流行语言所实现.这也允许在多样的平台上开发,包括: l  移动环境:FlashLite,.Net 集成框架,J2ME l  服务器环境:ColdFusion,J2EE,PHP,Python l  浏览器环境:Flash/Flex,JavaFX,Silverlight l  桌面环境:.Net,AIR,Flash,J2SE 目标: PureMVC框架主要

puremvc源码阅读

1.mediator作为ui管理器,是设计成可以list多个notification 2.所有ui想要监听notification,都需要register到facade中 3.puremvc只负责消息的方法和接受,但不负责显示列表的管理,所以对于ui,还需要自己addchild 4.INotifier发送消息,消息是原始数据.mvc内部把消息封装成Notification,进一步传递到别的模块. 5.IFacade继承自INotifier 6.controller继承自icontroller,它

【AS3 Coder】任务七:初涉PureMVC——天气预报功能实现

转自:http://www.iamsevent.com/post/36.html AS3 Coder]任务七:初涉PureMVC——天气预报功能实现 使用框架:AS3任务描述:了解PureMVC框架使用方式,了解普通AS3使用HTTP请求进行网络交互的方式,理解PureMVC框架设计思想难度系数:2 本章源码下载:http://www.iamsevent.com/zb_users/UPLOAD/learnPureMVC1/WeatherTest.rar 最近在讨论群里经常有看见有新手想学习Pur

【总结】游戏框架与架构设计(Unity为例)

使用框架开发游戏 优点:耦合性低,重用性高,部署快,可维护性高,方便管理.提高开发效率,降低开发难度 缺点:增加了系统结构和实现的复杂性,需要额外花费精力维护,不适合小型程序,易影响运行效率   常见框架 MVC  表现层(View):游戏画面.UI 逻辑层(Controller):数据接口,操作控制,AI 数据层(Model):数据保存,图片.声音等资源 我的SFramework中,View层是单独的,Model我放在基类中,Controller则在派生类,实现了MVC的分离(如果要重构的话我

12月9

记录下消失的这段时间 5-10月份,调到了游戏公司,职位是搞后台,结果却涉及了:  后台+客户端数据实体&网络请求+android+gm工具 项目使用mvc + mogodb,使用protobuf进行数据传输.并没有用到实时的socket,而是简单的http请求.对http请求的包头进行了封装,一些需要实时性强的数据(好友请求,新邮件等提示),使用捎带进行处理.对话使用的则是第三方irc服务. 项目后续,主要是  简化传输数据,以及使用eclipse进行平台sdk接入. 最大的收获是,了解部分项