一、pureMVC 内核:
View、Control、Model,三者都是单例,三者的管理者、协作者是Facade,Facade负责三者之间的通信、映射、注册、初始化等,Facade也是pureMVC的启动者。
1、View层(单例):View负责对Mediator的管理;View内部有两个映射表mediatorMap、observerMap,mediatorMap用来存储所有的Mediator,observerMap存储着所有的通信观察者(Observer,即监听消息者),在注册一个Mediator之时View会自动根据Mediator内部的listNotificationInterests返回的需要观察的通信消息命令头来创建相应的观察者并映射到observerMap表中,一个消息头可以映射多个Observer;另外,在调用 RegisterCommand时也会自动将该Command作为观察者映射到该observerMap表中。
2、Control层(单例):Control内部存有所有Command的映射表,负责View和Model之间的逻辑及通信操作,以达到将View 与 Model解耦合,在调用 RegisterCommand时也会自动将该Command作为观察者映射到View中的observerMap表中。
3、Model层(单例):Model存储所有Proxy的映射,Model只与Control通信,并可以被Control直接引用或接受Control发来的消息,Model负责数据模型及远程调用的操作。
二、四者之间 的关系:
1、View可以发送至Control或接受来自Control的消息,View 不允许直接与 Model通信,两者之间的通信必须经过Control; View不允许直接通过Facade引用Control来执行代码,必须通过消息发送;View可以直接被Control通过Facade引用,但官方不支持这种写法,希望View应该尽量不开放接口;
2、Model不允许向View发送消息,但是可以向Control发送消息,也不允许直接通过Facade引用Control或View来执行代码,但是Control可以直接通过Facade引用Model来执行代码;
3、Facade提供了View、Model、Control三者的初始化、注册、删除、引用及通信的接口 。
三、通信:
1、Observer(观察者): Observer存储了正在观察的对象(即Command或Mediator对象)和对应的执行函数;
2、Notifier包含了sendNotification的接口,Command、Mediator、Proxy都是继承于Notifier。Notifier中的sendNotification中引用了Facade.sendNotification的接口;
3、Facade 中的sendNotification通过调用notifyObservers接口引用View.notifyObservers接口;
4、View中的notifyObservers实现通信:首先,通过notification.getName()在observerMap查找出对应的观察者列表;其次,循环遍历找出的对应观察者列表,调用观察者的notifyObserver接口 来执行Observer内部的观察对象的执行函数。
- 大小: 55.2 KB
分享到:
相关推荐
PureMVC是一个开源的、轻量级的框架,主要用于构建多层架构的富客户端应用程序,尤其在ActionScript 3(AS3)环境中被广泛应用。它借鉴了Model-View-Controller(MVC)设计模式的理念,并对其进行了一定程度的抽象和...
【标题】"PureMVC简单示例及其原理讲解"涉及的是一个开源的、跨平台的MVC(Model-View-Controller)框架——PureMVC。PureMVC以其轻量级和高度可扩展性,在开发中得到了广泛应用。这篇博客文章通过一个简单的示例,...
### PureMVC开发框架详解 #### 一、概述 PureMVC是一个开源的、轻量级的、跨平台的框架,旨在帮助开发者构建结构清晰、易于扩展和维护的客户端应用程序。该框架最初由Futurescale公司创建并维护,遵循美国Creative...
**PureMVC框架详解** PureMVC是一种轻量级、模型-视图-控制器(MVC)框架,最初是为ActionScript开发的,后来被移植到多种编程语言中,包括C++。它提供了一种组织代码结构的方式,使得开发者可以更高效地构建可维护...
**纯MVC(PureMVC)AS3版详解** PureMVC是一款轻量级的框架,主要用于实现Model-View-Controller(MVC)设计模式。它最初由Dan Varga创建,旨在提供一种跨平台的解决方案,使开发人员能够更有效地组织和管理应用...
PureMVC是面向对象的多层应用程序框架,它提供了一种模式来组织代码,使开发更加规范和高效。本篇文章将深入探讨Unity中如何使用PureMVC框架,以及它如何帮助实现UI和逻辑的分离。 PureMVC是一个轻量级的框架,其...
《PureMVC登录示例详解》 在软件开发中,框架的选择往往对项目的架构和可维护性起到关键作用。PureMVC,一个轻量级、跨平台的MVC(Model-View-Controller)框架,因其简洁的设计和强大的组织能力,受到了许多开发者...
**PureMVC框架详解** PureMVC是一种轻量级、模型-视图-控制器(Model-View-Controller,MVC)框架,最初是为Flash/Flex应用设计的,但后来扩展到支持多种编程语言,包括JavaScript、Java、C#等。在Flex开发中,Pure...
《PureMVC服务器端代码详解》 PureMVC框架,作为一个多层架构设计模式的实现,为开发者提供了强大的组织和管理应用代码的方式。它源于ActionScript,后来发展为跨平台的框架,支持Java、Flex等多种编程语言。在本篇...
**纯MVC(PureMVC)框架详解** PureMVC是一个轻量级的、跨平台的Model-View-Controller框架,适用于多种编程语言,包括ActionScript、JavaScript、C#、Java等。它提供了一个标准的架构,使得开发者可以更有效地组织...
### pureMVC加注释版 #### 知识点概览 - **PureMVC简介** - **PureMVC架构解析** - Model与Proxy - View与Mediator - Controller与Command - Façade与Core - Observer与Notification - **Mediator详解** - **...
### Flex PureMVC手册知识点详解 #### 一、PureMVC概述 - **定义与来源**:PureMVC是一个开源的、跨平台的框架,专为构建可扩展、可维护的RIA(Rich Internet Applications)而设计。该框架由Futurescale公司创建...
《PureMVC JavaScript 多核框架详解》 PureMVC 是一个轻量级的、模型-视图-控制器(Model-View-Controller)框架,它最初是为Flash平台设计的,但随着时间的发展,已被移植到多种编程语言中,包括JavaScript。在本...
**PureMVC C# 框架详解** PureMVC是一种流行且强大的多层应用程序架构框架,最初设计用于创建富互联网应用(RIA),但随着时间的推移,它已经被广泛移植到各种平台,包括服务器端环境。本文将深入探讨PureMVC在C#中...
**PureMVC 开源框架详解** PureMVC 是一个轻量级、跨平台的框架,设计用于构建模型-视图-控制器(Model-View-Controller,MVC)结构的应用程序。它采用简单而强大的概念,使得开发者能够更高效地组织和管理代码,...
`puremvc-as3-multicore-framework-master`文件名表明这是一个Pure MVC多核框架的AS3实现的源码仓库。通过查看和学习这个源码,开发者可以深入理解多核架构的设计和实现细节,提升在AS3项目中的框架应用能力。 综上...
**PureMVC C++ 框架详解** PureMVC是一种经典的、轻量级的、模型-视图-控制器(Model-View-Controller)框架,它最初是为ActionScript编程语言设计的,后来逐渐发展出了多种语言版本,包括C++。在基于Cocos2d-x的...
- **第2章:PureMVC 架构详解**:深入探讨 PureMVC 架构的各个组成部分(模型、视图、控制器),并解释它们之间的交互方式。 - **第3章:设置开发环境**:指导读者如何安装和配置必要的工具,包括 Flex SDK、IDE(如...
### PureMVC流程详解 #### 一、概述 PureMVC是一种开源的、跨平台的框架,用于构建灵活且可维护的应用程序结构。它通过实现一种标准的模型-视图-控制器(MVC)设计模式,帮助开发者组织代码并简化应用开发流程。...
3. **PureMVC组件详解** - **Proxy**:模型层组件,通常用于封装数据访问。在员工管理系统中,可能包含EmployeeProxy,负责存储和操作员工数据。 - **Mediator**:视图层组件,负责监听和处理视图事件,同时与...