什么是MVC?m就是model,v就是view,c就是contrler;也就是为了减少程序的耦合度,狠很牛的人就运用该模式把应用程序分为三层,便于管理、二次开发等......,
model里面放着数据,供view和contrler来用,通常也在model里面派发事件,一直与两者保持独立。
view是用来显示界面让用户观察的,它是按用户请求去用model里面的数据,view里面接收model里面派发出来的的事件,并从新根据请求去设置显示界面。
controler是按请求去更新数据的处理器,通过传参或者其他方式是与view和model接触并处理。
下面就是一个很好的了解mvc的显示时间小例子源码,供初学者参考:
model
package
{
import flash.display.Sprite;
import flash.events.EventDispatcher;
import flash.events.Event;
public class Model extends EventDispatcher
{
private var _hour:String;
private var _minute:String;
private var _second:String;
public function Model()
{
}
public function get hour():String { return _hour; }
public function set hour(value:String):void
{
dispatchEvent(new Event("setHour"));
_hour = value;
}
public function get minute():String { return _minute; }
public function set minute(value:String):void
{
dispatchEvent(new Event("setMinute"));
_minute = value;
}
public function get second():String { return _second; }
public function set second(value:String):void
{
dispatchEvent(new Event("setSecond"));
_second = value;
}
}
}
view
public class View extends Sprite
{
private var txt:TextField;
private var _model:Model;
private var _control:Control;
public function View(model:Model,control:Control)
{
_model = model;
_control = control;
txt = new TextField()
addChild(txt);
_model.addEventListener("setHour", setHandler);
_model.addEventListener("setMinute", setHandler);
_model.addEventListener("setSecond", setHandler);
control.starUp();
}
private function setHandler(e:Event):void
{
txt.text = _model.hour + ":" + _model.minute + ":" + _model.second;
}
}
}
controler
public class Control
{
private var _model:Model;
private var hour:String;
private var minute:String;
private var second:String;
private var timer:Timer = new Timer(1000);
public function Control(model:Model)
{
_model = model;
}
public function starUp():void
{
timer.start();
timer.addEventListener(TimerEvent.TIMER, onTimer);
}
private function onTimer(e:TimerEvent):void
{
var date:Date = new Date();
_model.hour = date.getHours() <9 ? "0" + date.getHours(): String(date.getHours());
_model.minute = date.getMinutes() < 9? "0" + date.getMinutes(): String(date.getMinutes());
_model.second = date.getSeconds() < 9?"0" + date.getSeconds() : String(date.getSeconds());
}
}
}