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

PureMVC学习笔记一

阅读更多

 

1. View保存对Mediator对象的引用 。由Mediator对象来操作具体的视图组件(View Component,例如Flex的DataGrid组件),包括:添加事件监听器 ,发送或接收Notification ,直接改变视图组件的状态。这样做实现了把视图和控制它的逻辑分离开来。
   当用View注册Mediator时,Mediator的listNotifications方法会被调用,以数组形式返回该Mediator对象所关心的所有Notification。之后,当系统其它角色发出同名的Notification(通知)时,关心这个通知的Mediator都会调用handleNotification方法并将Notification以参数传递到方法。

 

public function registerMediator( mediator:IMediator ) : void
{
	// do not allow re-registration (you must to removeMediator fist)
	if ( mediatorMap[ mediator.getMediatorName() ] != null ) return;
	
	// Register the Mediator for retrieval by name
	mediatorMap[ mediator.getMediatorName() ] = mediator;
	
	// Get Notification interests, if any.
	var interests:Array = mediator.listNotificationInterests();

	// Register Mediator as an observer for each of its notification interests
	if ( interests.length > 0 ) 
	{
		// Create Observer referencing this mediator's handlNotification method
		var observer:Observer = new Observer( mediator.handleNotification, mediator );

		// Register Mediator as Observer for its list of Notification interests
		for ( var i:Number=0;  i<interests.length; i++ ) {
			registerObserver( interests[i],  observer );
		}			
	}
	
	// alert the mediator that it has been registered
	mediator.onRegister();	
}

 

2. Controller 保存所有Command 与 Notification 的映射。Command是无状态的,只在需要时被创建。

 

 

public function registerCommand( notificationName : String, commandClassRef : Class ) : void
{
	if ( commandMap[ notificationName ] == null ) {
		view.registerObserver( notificationName, new Observer( executeCommand, this ) );
	}
	commandMap[ notificationName ] = commandClassRef;
}

public function executeCommand( note : INotification ) : void
{
	var commandClassRef : Class = commandMap[ note.getName() ];
	if ( commandClassRef == null ) return;

	var commandInstance : ICommand = new commandClassRef();
	commandInstance.execute( note );
}
 
1
0
分享到:
评论

相关推荐

    [转] 老板让俺总结的puremvc学习笔记

    在阅读《PureMVC学习笔记.docx》时,你可能会深入了解每个组件的工作原理,以及如何在实践中应用它们。这份文档可能包含了示例代码、最佳实践和常见问题解答,帮助你更好地理解和掌握PureMVC框架。通过学习和实践,...

    PureMVC 中文版

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

    cocoscreator使用puremvc

    PureMVC则是一个经典的多层应用程序框架,最初设计用于ActionScript环境,但现在已经有了多种语言版本,包括JavaScript,这使得它在Cocos Creator的JavaScript项目中也能应用。 在Cocos Creator中使用PureMVC,主要...

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

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

    PureMVC学习资料与案例

    学习PureMVC不仅能够提升代码的组织性,还有助于提高开发效率,特别是对于大型项目,其优势更为明显。通过案例实践,你可以更好地理解和应用PureMVC框架,从而构建出高效、可维护的富客户端应用。

    PureMVC框架学习总结

    PureMVC是一种遵循模型-视图-控制器(MVC)设计模式的框架,它强调程序的三大核心部分:数据模型(Model)、视图(View)、和控制器(Controller)的分离,以便于多个视图可以共享同一数据模型,而当数据发生变化时...

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

    在这个五子棋游戏中,我们可以看到PureMVC的精髓是如何被巧妙地应用的,从而帮助我们学习和掌握这一框架的核心概念。 一、PureMVC架构基础 1. Model(模型):负责存储和管理应用程序的数据。在五子棋游戏中,模型...

    Lua实现PureMVC

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

    PureMvc实例 PureMvc第一个实例

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

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

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

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

    PureMVC是一个开源的、轻量级...通过学习PureMVC,开发者可以获得一种统一的开发流程,提高代码的可读性和可维护性,同时降低项目的复杂度。在实际项目中,合理地利用PureMVC可以提高开发效率,使得团队协作更加顺畅。

    pureMVC资料包

    1. **模块化**:PureMVC提供了一种方式来组织应用程序为多个独立的模块,每个模块都有自己的MVC组件,可以独立地开发和测试。 2. **非侵入式**:PureMVC的组件并不直接依赖于应用程序的业务逻辑,而是通过消息传递...

    pureMVC_AS3

    1. **MacroCommand**:宏命令是PureMVC的一个扩展,它允许将多个命令组合在一起,作为一个单一的命令执行,使得处理复杂流程变得更加简单。 2. **SimpleCommand**:简单命令是处理单个任务的命令,它接收通知,执行...

    Unity 专用 pureMVC

    Unity 专用纯MVC框架详解 Unity是一款强大的跨平台游戏引擎,被广泛应用于游戏开发、虚拟现实、增强现实等领域。在构建复杂的用户界面...在压缩包中的PureMVC文件,包含了实现这一框架的源代码,供开发者学习和使用。

    PureMVC_study

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

    一个很好的puremvc实例

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

    PureMVC.rar

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

    qt版本pureMVC

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

    PureMVC_CSharp.zip_csharp_pureMVC_pureMVC C_pureMVC C#_疯铮铮

    "表示这不仅仅是一个概念介绍,还提供了实际的代码示例,学习者可以直接查看和运行这些源代码,加深对PureMVC的理解。 标签进一步细化了主题,"csharp"指明是C#语言相关,"puremvc"是框架的名字,"puremvc_c"和...

    PureMVC教程,PureMVC教程,是学习PureMVC框架的好文章,PureMVC教程,是学习PureMVC框架的好文章,PureMVC教程,是学习PureMVC框架的好文章

    1. **Proxy(代理)**:在PureMVC中,Proxy作为Model的一部分,负责管理和存储应用的数据。它通常包含对业务逻辑或数据源的访问,提供了一种统一的方式来处理和存储数据对象,降低了视图和模型之间直接交互的风险。 ...

Global site tag (gtag.js) - Google Analytics