浏览 2270 次
锁定老帖子 主题:Flex中MVC
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-11-04
Flex的出现不只是解决了浏览器的不足,而且更加多元化,对用户更加友好 更加丰富,吸引程序员的眼球。可惜的是表显层如果处理不好业务逻辑非常杂乱。简直就是污染。所以我们是不是重构一下呢!好。。我们看看MVC。把这个架构模式放到表显层是一贯作风。我们来看看M 层 [Bindable] public class ModelLocal extends EventDispatcher { public var name:String; public var age:int; private static var instance:ModelLocal; public var teacher:Teacher;//存放数据 public static function getInst():ModelLocal{//单例 统一存取 if(instance==null){ instance=new ModelLocal(); } return instance; } public function ModelLocal(target:IEventDispatcher=null) { super(target); } } }
我们再来看看C层 public class proControl { public var theModel:ModelLocal=ModelLocal.getInst(); public static var helloEvent:String="helloevent"; public function proContra() { } public function getTeacher():void{ var teacher:Teacher=new Teacher(); teacher.name="nic"; theModel.teacher=teacher;//存放数据 } public function getData():void { theModel.name="hello i love you";;//存放数据 theModel.dispatchEvent(new Event(proContra.helloEvent));//分发事件 } }
上面是把数据推和拉的过程。这方面可以看看观察模式
好。最后可以看看V层 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="getTeacher();"> <mx:Script> <![CDATA[ import com.source.bean.*; import mx.controls.Alert; var conn:proContra=new proContra(); var model:ModelLocal=ModelLocal.getInst(); private function getTeacher():void{ conn.getTeacher(); model.addEventListener(proContra.helloEvent,hellohadler); } private function hellohadler(evt:Event):void { Alert.show(model.name); } private function goTo():void { conn.getData(); } ]]> </mx:Script> <mx:TextInput x="190" y="104" text="{model.teacher.name}"/> <mx:Button x="190" y="203" label="Button" click="goTo();"/> </mx:Application>
看看表示层是否干净了很多呢! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-01-07
|
|
返回顶楼 | |