首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

Flex之应用Cairngorm(4) - Cairngorm Extensions

2012-10-28 
Flex之使用Cairngorm(4) - Cairngorm ExtensionsPrevious Posts:1.准备工作 http://nealmi.iteye.com/blog

Flex之使用Cairngorm(4) - Cairngorm Extensions
Previous Posts:
1.准备工作 http://nealmi.iteye.com/blog/164867
2.使用ModelLocator http://nealmi.iteye.com/blog/164879
3.Command & Event http://nealmi.iteye.com/blog/177370

Cairgorm Step By Step教程[推荐]
http://www.davidtucker.net/category/cairngorm/(英文)

下载源码:
后台指向我的Google App Engine 程序, 你可以暂时不关心后台, 直接导入到FlexBuilder里运行.
http://nealmi.iteye.com/topics/download/2e854ac3-89b2-3f15-814b-e4317380608e

就我个人来说,Cairngorm有两个致命的问题,直接影响到我是否使用它.
1.不支持通知视图.
Cairngorm2.1之前可以用ViewHelper 和 ViewLocator,但是自从Cairngorm2.1开始已经不推荐了.而且 ViewHelper和ViewLocator 方式本身就违反MVC.
2.不支持子Controller.

所以我选择了使用 UM Cairngorm Extensions. http://code.google.com/p/flexcairngorm/

Refactor To UM Cairngorm Extensions:

1.重构Event.继承com.universalmind.cairngorm.events.UMEvent.
在构造函数里接受一个IResponder类型的参数(用作通知视图), UMEvent 本身带有一个data属性.



2.重构Controller.继承com.universalmind.cairngorm.control.FrontController.增加对子Controller的支持,可以通过addSubController(..)方法来添加子Controller.这样可以每个独立的模块有独立MVC结构.


3.重构Delegate, 继承com.universalmind.cairngorm.business.Delegate.



6.View代码.



6.注意Value Object的写法.要实现com.universalmind.cairngorm.vo.IValueObject接口.实现copyFrom 和Clone方法.
package net.imzw.UserManagerDemo.vo{import com.universalmind.cairngorm.vo.IValueObject;[Bindable]public class UserVO implements IValueObject{public var id:Number;public var loginName:String;public var password:String;public function UserVO( loginName:String=null, password:String=null ){this.loginName = loginName;this.password = password;}public function copyFrom(src:*):*{this.loginName = src.loginName;this.password = src.password;}public function clone():*{return new UserVO(loginName, password);}public function equals(anotherUser:*):Boolean{if(null == anotherUser) return false;if(id == anotherUser.id && loginName == anotherUser.loginName){return true;}return false;}public function toString():String{return "User[loginName:"+loginName+"]";}}}


以上只是粗略的介绍.有什么问题可以联系我通过邮件 imzw.net+javaeye at gmail.com.

-------------
IT'S NEAL.

热点排行
Bad Request.