`

Flex 框架PureMVC 源码解析之--IController篇

    博客分类:
  • Flex
阅读更多

1、最近工作的事情不太多,自己flex水平也很一般,只是经常用这个框架而从来没有系统的分析过感觉还是很笼统;

     自己也希望看一些框架的源代码来提高自己,苦于大部分框架源代码太多而自己太懒而搁浅,碰巧pureMVC for Flex的代      码不是很多,所以想以此为以后研究其他源代码的开篇。


2、先上一个官方的类的结构图:

    

 
     


3、首先了解一下第一个接口:IController

 

 

package org.puremvc.as3.interfaces
{
	public interface IController
	{

		/**作用:负责绑定消息和消息的处理方法,
		*              其实在Controller类中存在一个数组(其实更确切点是Map)commandMap,
		 * 				形如commandMap[ notificationName ] = commandClassRef;  
		*              在commandMap中存在以notificationName 作为key,commandClassRef 作为value的key-value形式的对象,  
		*              当某个消息发出时,通过消息的名称(notificationName)作为key,找到消息处理函数commandClassRef。  
		 * 
		* @param notificationName 消息的名称  
		* @param commandClassRef  处理消息的类  
		*/  
		function registerCommand( notificationName : String, commandClassRef : Class ) : void;
		
		/**作用:通过给定的INotication接口的实例Notification对象得到消息的名称
		 * 				(Notification是一个消息对象,保存消息类型、名称、消息体);  
		*               获取消息名称后,再通过之前绑定消息名称和处理消息的类的数组commandMap来
		 * 				通过key(消息名称)得到value(消息处理类),并执行这个消息处理类。  
		 * 
		* @param notification 一个消息对象  
		*/		
		function executeCommand( notification : INotification ) : void;

		/**  
		 * 作用:通过消息名称从commandMap中移除这个绑定的消息处理类  
		 *   
		 * @param notificationName 和要移除的消息处理类绑定的消息名称  
		 */  
		function removeCommand( notificationName : String ):void;

		
		/**  
		 * 作用:通过给定的消息名称来检查commandMap中是否存在与之对应的消息处理类  
		 *   
		 * @param notificationName 消息名称  
		 * @return 返回在commandMap中是否存在这样一个与之绑定的消息处理类(布尔值)  
		 */ 
		function hasCommand( notificationName:String ) : Boolean;
	}
}
 
  • 大小: 142.7 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics