MVC 模式 很經典的時鐘例項

2021-07-08 19:27:29 字數 2310 閱讀 5024

mvc模式是」model-view-controller」的縮寫,中文翻譯為」模式-檢視-控制器」。mvc應用程式總是由這三個部分組成。 event(事件)導致controller改變model或view,或者同時改變兩者。只要controller改變了models的資料或者屬性,所有依賴的view都會自動更新。

mvc模式能使介面(viwe)和資料(model)能有效的分開,由控制器(controller)去控制。

我們現在以乙個比較簡單的電子時鐘的例子來看看如何使用mvc模式來架構我們的程式.

首先我們來看一下model,model按照我的理解是資料,就是所有的共用資料都是儲存在model裡面的,時鐘裡有這樣的資料,小時,分鐘,秒;現在我們來建立乙個model,modellocator.as:

package

net.

smilecn

.clock

.model

public

function

gethour():

string

public

function

sethour

(value

:string):

void

public

function

getminutes():

string

public

function

setminutes

(value

:string):

void

public

function

getsecond():

string

public

function

setsecond

(value

:string):

void}}

這個**應該會好懂,這裡modellocator繼承了eventdispatcher這個類,繼承這個類的原因是modellocator需要用dispatchevent發訊息出去。再來看一下controller.as這個類:

package

net.

smilecn

.clock

.control

public

function

starttime():

void

private

function

timerhandler

(event

:timerevent):

void}}

這個類中我們用到了timer類,因為我們用的是時鐘,所以需要乙個定時器,timer是乙個很好的定時器,timer(1000,0),這裡 1000是指1000毫秒,就是1秒鐘觸發一次定時鐘,0表示次數,這裡0是無限次,如果是大於0的數就是這個數的次數。偵聽 timerevent.timer事件就是1秒鐘去執行一次timerhandler方法,timerhandler方法的功能是得到當前的時間然後去改變_model裡面的值,再看一下modellocator.as裡面的**,當hour,minutes,second的值改變的時候就會去發消

息出去,那麼誰來偵聽這些訊息呢,當然是view,現在來看下view.as:

package

net.

smilecn

.clock

.view

private

function

changetimehandler

(event

:event):

void}}

在view裡面,偵聽了_model的事件,所以當收到資料改變的訊息後,將_model的資料顯示到文字框中。

要使程式執行,我們現加乙個文件類:

package

net.

smilecn

.clock}}

在文件類中建立了modellocator、controller、view的例項,modellocator產生的例項被傳到了 controller和view中,這樣就保證了controller和view使用是相同的modellocator,其實要達到這種效果不用這種方法也可以,可以用到上一節中用到的單例模式。

這裡作乙個總結,controller是乙個控制者,它去改變modellocator,modellocator的資料被改變後去更新view,使我們能看到資料。如果介面上有一些按鈕互動,那麼就應該是controller去響應view裡的按鈕互動,響應後去通過一些操作後改變 modellocator,modellocator資料改變後通知view去改變介面。

有人可以會說這個程式用更少的**就可以完成,但這裡只是演示程式的架構,當程式很大時,好的架構會使程式更清晰。

很詳細的時鐘程式

程式 option explicit line3 表示時針 line1 1 表示分針 長度960 line2 表示秒針 長度1200 timer 定時器週期1s label2 標籤顯示當前系統時間 dim xx1 as integer 表盤圓心座標 dim yy1 as integer dim my...

ExtJS4的MVC模式例項

mvc模式,想必大家都很清楚。model view controller。extjs在4.0以後也開始引入了mvc模式,程式的結構也就變得規範。開發者可以利用mvc的設計模式規劃了開發流程。下面的乙個mvc模式的小例子。在demo資料夾裡就是extjs的mvc架構。先來看介面。這裡由於是演示。我們使...

PHP例項 實現超級簡單的MVC模式

下面是乙個超級簡單的mvc結構實現,甚至連資料來源都用了乙個內建的固定陣列,雖然簡單,但其實眾多的php framework核心實現的思想應該和這個是差不多的,只不過一些framework提供了更多的方便開發者使用的工具,我也想自己來實現乙個php的 框架,目前正在著手策劃中,也希望自己能夠從框架的...