Riawave - Flex最佳实践

Riawave 不是一个Flex framework, 而是一个Flex best practice(最佳实践: 就好比SpringSide是java web开发的最佳实践)。Riawave提倡Component Based Design,以提高程序的可扩展性、可维护性和重构能力。

下载地址:http://ria.richtechmedia.com/flexsample/sample.rar

Riawave比较重要的2个类是CustomEvent和ModelLocator。其事件驱动机制基本是围绕这2个类展开的。ModelLocator主要是Singleton的持有数据对象,这里不多说。下面说说CustomEvent

Riawave中的CustomEvent代码如下

  1. public class CustomEvent extends Event{   
  2.        
  3.     public var data:* = "default data";   
  4.     public var msg:* = "default msg";   
  5.        
  6.     //type, data, arg   
  7.     public function CustomEvent(type:String, ... args){   
  8.            
  9.         super(type, truetrue);   
  10.            
  11.         if(args){   
  12.             this.data = ( args[0] != undefined ) ? args[0] : trace("");   
  13.             this.msg = ( args[1] != undefined ) ? args[1] : trace("");   
  14.         }   
  15.     }   
  16.        
  17. }  

我稍微改了一下,主要是参数形式,和默认值。自我感觉这样更好些

  1. public class CustomEvent extends Event {   
  2.        
  3.     public var data : *;   
  4.     public var message : String;   
  5.        
  6.     //type, data, message   
  7.     public function CustomEvent(type:String, data:*=null, message:String="CustomEvent: no message") {   
  8.            
  9.         super(type, truetrue);   
  10.            
  11.         this.data = data;   
  12.         this.message = message;   
  13.     }   
  14.        
  15. }  

再有一点,就是Riawave中的定制事件类型(字符串常量)散布在很多代码里,比如LOGIN_OK就存在ContactProvider.as和FlexExample.mxml中。我把它们提取出来,放在一起CustomEventTypes

  1. public class CustomEventTypes {   
  2.        
  3.     public static const LOGIN_OK:String = "loginOK";   
  4.        
  5.     public static const ADD_CONTACT:String = "addContact";   
  6.        
  7.     ...   
  8. }  

 参考 http://ria.richtechmedia.com/

你可能感兴趣的:(Web,Flex)