MVC

一瑟曲、簡(jiǎn)介

MVC是三個(gè)單詞的首字母縮寫(xiě),它們是Model(模型)字旭、View(視圖)Controller(控制)

這個(gè)模式認(rèn)為哟沫,程序不論簡(jiǎn)單或復(fù)雜,從結(jié)構(gòu)上看锌介,都可以分成三層嗜诀。

1)最上面的一層猾警,是直接面向最終用戶(hù)的"視圖層"(View)。它是提供給用戶(hù)的操作界面隆敢,是程序的外殼发皿。

2)最底下的一層,是核心的"數(shù)據(jù)層"(Model)拂蝎,也就是程序需要操作的數(shù)據(jù)或信息穴墅。

3)中間的一層,就是"控制層"(Controller)温自,它負(fù)責(zé)根據(jù)用戶(hù)從"視圖層"輸入的指令玄货,選取"數(shù)據(jù)層"中的數(shù)據(jù),然后對(duì)其進(jìn)行相應(yīng)的操作悼泌,產(chǎn)生最終結(jié)果松捉。

這三層是緊密聯(lián)系在一起的,但又是互相獨(dú)立的馆里,每一層內(nèi)部的變化不影響其他層隘世。每一層都對(duì)外提供接口(Interface),供上面一層調(diào)用也拜。這樣一來(lái)以舒,軟件就可以實(shí)現(xiàn)模塊化趾痘,修改外觀或者變更數(shù)據(jù)都不用修改其他層慢哈,大大方便了維護(hù)和升級(jí)。

二永票、代碼解釋

var model = {
    data: null,
    init(){}
    fetch(){}
    save(){}
    update(){}
    delete(){}
}
view = {
    init() {}
    template: '<h1>hi</h1'>
}
controller = {
    view: null,
    model: null,
    init(view, model){
        this.view = view
        this.model = model
        this.bindEvents()
    }
    render(){
        this.view.querySelector('name').innerText = this.model.data.name
    },
    bindEvents(){}
}

1.Mode(模型)

// var model = Model({ resourceName: 'Message' })
window.Model = function (options) {
    let resourceName = options.resourceName
    return {
        init: function () {
            var APP_ID = 'hg9Xg2ojqCnRblDNUbxva3Ba-gzGzoHsz'
            var APP_KEY = '1FfsrmfHjz0LmzNIseyLJHld'
            AV.init({
                appId: APP_ID,
                appKey: APP_KEY
            });
        },
        fetch: function () {
            var query = new AV.Query(resourceName)
            return query.find() //Promise 對(duì)象 
        },
        save: function (object) {
            var X = AV.Object.extend(resourceName);
            var x = new X();
            return x.save(object)  //Promise 對(duì)象
        }

    }
}

2.View(視圖)

//var view = View('.xxx')
window.View = function(selector){
    return document.querySelector(selector)
}

3.Controller(控制)

/*
Controller({
    init:(){
        this.view
        this.model
        this.xxx()
        this.yyy()
    },
    xxx()
    yyy()
})
*/
window.Controller = function (options) {
    var init = options.init
    let object = {
        view: null,
        model: null,
        init: function (view, model) {
            this.view = view
            this.model = model
            this.model.init()
            init.call(this, view, model)
            this.bindEvents.call(this)
        },
    }
    console.log('object')
    console.log(object)
    // debugger
    console.log('options')
    console.log(options)
    // debugger
    for (let key in options) {
        if (key !== 'init') {
            object[key] = options[key]
        }
    }
    console.log('新的 object')
    console.log(object)
    // debugger
    return object
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末卵贱,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子侣集,更是在濱河造成了極大的恐慌键俱,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件世分,死亡現(xiàn)場(chǎng)離奇詭異编振,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)臭埋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)踪央,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人瓢阴,你說(shuō)我怎么就攤上這事畅蹂。” “怎么了荣恐?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵液斜,是天一觀的道長(zhǎng)累贤。 經(jīng)常有香客問(wèn)我,道長(zhǎng)少漆,這世上最難降的妖魔是什么臼膏? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮检疫,結(jié)果婚禮上讶请,老公的妹妹穿的比我還像新娘。我一直安慰自己屎媳,他們只是感情好夺溢,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著烛谊,像睡著了一般风响。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上丹禀,一...
    開(kāi)封第一講書(shū)人閱讀 51,443評(píng)論 1 302
  • 那天状勤,我揣著相機(jī)與錄音,去河邊找鬼双泪。 笑死持搜,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的焙矛。 我是一名探鬼主播葫盼,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼村斟!你這毒婦竟也來(lái)了贫导?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蟆盹,失蹤者是張志新(化名)和其女友劉穎孩灯,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體逾滥,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡峰档,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了寨昙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片讥巡。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖毅待,靈堂內(nèi)的尸體忽然破棺而出尚卫,到底是詐尸還是另有隱情,我是刑警寧澤尸红,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布吱涉,位于F島的核電站刹泄,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏怎爵。R本人自食惡果不足惜特石,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鳖链。 院中可真熱鬧姆蘸,春花似錦、人聲如沸芙委。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)灌侣。三九已至推捐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間侧啼,已是汗流浹背牛柒。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留痊乾,地道東北人皮壁。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像哪审,于是被迫代替她去往敵國(guó)和親蛾魄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 前言 看了下上篇博客的發(fā)表時(shí)間到這篇博客而线,竟然過(guò)了11個(gè)月,罪過(guò)恋日,罪過(guò)膀篮。這一年時(shí)間也是夠折騰的,年初離職跳槽到鵝廠...
    西木柚子閱讀 21,238評(píng)論 12 184
  • 又看到有人在問(wèn)三層架構(gòu)和MVC的關(guān)系岂膳,感覺(jué)這種問(wèn)題有點(diǎn)教條化了誓竿。因?yàn)樗鼈兌荚谶壿嬌蠈?yīng)用程序劃為三塊,湊了一個(gè)數(shù)字...
    Ludiwgbet閱讀 1,883評(píng)論 1 12
  • 和MVC框架模式一樣谈截,Model模型處理數(shù)據(jù)代碼不變?cè)贏ndroid的App開(kāi)發(fā)中筷屡,很多人經(jīng)常會(huì)頭疼于App的架構(gòu)...
    ppice閱讀 4,312評(píng)論 2 17
  • 一同事新戴一條施華洛世奇天鵝水晶項(xiàng)鏈涧偷,長(zhǎng)長(zhǎng)的鏈子前綴后曳,憑添幾分婉麗毙死。 乍見(jiàn)燎潮,美言嘉獎(jiǎng)兩句:項(xiàng)鏈好漂亮,脖頸后面...
    靈山閱讀 218評(píng)論 0 0
  • 我最近有點(diǎn)頭痛扼倘,倒不是什么身體不適導(dǎo)致的腦子里某個(gè)地方拒絕正常運(yùn)行确封,而是“頭疼”我一光著屁股玩到大的閨蜜。我暫且稱(chēng)...
    嬋_明閱讀 234評(píng)論 3 1